每个季度的销售数据都包含在数据源的一行中。
帐户 1 的 4 个季度的销售数据将位于 4 条单独的记录中,每条记录都包含帐户名称、季度编号和所购商品的数量。
报告应在每个详细信息行中显示:帐户名称、q1 计数、q2 计数、q3 计数、q4 计数、总年份计数。
我是 Crystal 的新手,但看起来这应该很容易;我该怎么做?
每个季度的销售数据都包含在数据源的一行中。
帐户 1 的 4 个季度的销售数据将位于 4 条单独的记录中,每条记录都包含帐户名称、季度编号和所购商品的数量。
报告应在每个详细信息行中显示:帐户名称、q1 计数、q2 计数、q3 计数、q4 计数、总年份计数。
我是 Crystal 的新手,但看起来这应该很容易;我该怎么做?
在 {account} 上添加一个组 在组页脚中为每个季度添加一个运行总计。
For each quarter, create a running total with following settings:
Running Total Name: create a unique name for each formula, for example Q1,Q2,Q3,Q4
Field to summarize: {items purchased}
Type of summary: sum
Evaluate: Use a formula - {quarter number}= --should be 1,2,3, or 4, depending on which quarter you are summing
Reset: On Change of Group {account}
如果您的数据源中包含销售日期(我假设会),您可以创建一个名为 的公式@SalesQuarter
:
if month({TableName.SalesQuarter}) in [1,2,3] then '1' else
if month({TableName.SalesQuarter}) in [4,5,6] then '2' else
if month({TableName.SalesQuarter}) in [7,8,9] then '3'
else '4'
然后,您可以将交叉表添加到报表中,并将新@SalesQuarter
字段用作交叉表的列标题。
这假设您的销售额都在同一年内。
我可能会使用一些稍微复杂的 sql 创建结果列表,它们只是将其显示在 Crystal 报告上……但如果您想完全在 Crystal 内部完成此操作,请查看http://aspalliance.com/ 1041_Creating_a_Crosstab_Report_in_Visual_Studio_2005_Using_Crystal_Reports.all。
这是对需要的 SQL 的刺探......
select
accountName,
(select sum(itemCount) from myTable where quarterName = 'q1') as q1Count,
(select sum(itemCount) from myTable where quarterName = 'q2') as q2Count,
(select sum(itemCount) from myTable where quarterName = 'q3') as q3Count,
(select sum(itemCount) from myTable where quarterName = 'q4') as q4Count,
(select sum(itemCount) from myTable) as yearCount
from myTable
group by accountName ;