在单行中显示季度记录中的数据

时间:2011-01-25 15:25:05

标签: crystal-reports crystal-reports-2008

每个季度的销售数据都包含在数据源的一行中。

帐户1的4个季度的销售数据将分为4个单独的记录,每个记录包含帐户名称,季度编号和购买的项目数。

报告应在每个详细信息行中显示:帐户名称,q1计数,q2计数,q3计数,q4计数,总年份计数。

我是Crystal的新手,但看起来这应该很容易;我该怎么做?

3 个答案:

答案 0 :(得分:0)

我可能会使用一些稍微复杂的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 ;

答案 1 :(得分:0)

如果您的数据源中包含销售日期(我认为可以),您可以创建一个名为@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字段作为交叉表的列标题。

这假设您的销售都在同一年内。

答案 2 :(得分:0)

在{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}