Crystal reports 在一行中显示季度记录中的数据

Crystal reports 在一行中显示季度记录中的数据,crystal-reports,crystal-reports-2008,Crystal Reports,Crystal Reports 2008,每个季度的销售数据都包含在数据源中的一行中 账户1的4个季度销售数据将保存在4个单独的记录中,每个记录包含账户名称、季度号和购买物品的数量 报告应在每个详细信息行中显示:账户名称、第一季度计数、第二季度计数、第三季度计数、第四季度计数、总年份计数 我对Crystal还不熟悉,但看起来这应该很容易;我该怎么做呢?我可能会使用一些稍微复杂的sql创建结果列表,结果列表只会显示在Crystal报表上……但是如果你想完全在Crystal内部完成这项工作,请看一看 这里是一个在SQL的刺刀,将需要 sel

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

账户1的4个季度销售数据将保存在4个单独的记录中,每个记录包含账户名称、季度号和购买物品的数量

报告应在每个详细信息行中显示:账户名称、第一季度计数、第二季度计数、第三季度计数、第四季度计数、总年份计数


我对Crystal还不熟悉,但看起来这应该很容易;我该怎么做呢?

我可能会使用一些稍微复杂的sql创建结果列表,结果列表只会显示在Crystal报表上……但是如果你想完全在Crystal内部完成这项工作,请看一看

这里是一个在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 ;

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

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

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

Keith,你的数据源是否已经按季度开发和总结了?如果是这样,那么剩下的就是晶体部分。你能给我们一个更具体的问题,你想做什么?