我在任何报告中都是排名菜鸟,但带有小计的水平线。我有一个数据集,其中包含汽车在停车场所花费的时间。我必须生成一个表格,显示每个小时的一列和每天的一行,显示特定日期特定时间的条目数。
我会在 RDLC 设计器中发现这更容易,它是柱状分组,但我什至在 Crystal 中找不到这样的东西。
帮助。
我在任何报告中都是排名菜鸟,但带有小计的水平线。我有一个数据集,其中包含汽车在停车场所花费的时间。我必须生成一个表格,显示每个小时的一列和每天的一行,显示特定日期特定时间的条目数。
我会在 RDLC 设计器中发现这更容易,它是柱状分组,但我什至在 Crystal 中找不到这样的东西。
帮助。
假设以下字段:{table.car_id}
和{table.census_time}
右键单击交叉表并选择“交叉表专家”:
{table.census_time]
到列字段列表;按小时分组{table.census_time}
到行字段列表;按天分组{table.car_id}
到汇总字段列表;数数** 编辑 **
您无需创建特殊公式即可从日期/时间字段中提取小时;交叉表将为您做到这一点。
选择“Cross-Tab”选项卡,添加{table.census_time}
字段,然后单击“Group Options...”按钮。
选择“每小时”。从选择列表中。
您需要创建一个包含每小时记录的表:
表日小时
Period StartHour EndHour
00:00 - 01:00 0 1
01:00 - 02:00 1 2
02:00 - 03:00 2 3
03:00 - 04:00 3 4
...
23:00 - 00:00 23 24
然后将您的数据与此表连接起来
SELECT h.Period, DATEPART(dd,d.EntryTime) as Day, 1 as Value
FROM DayHour h LEFT JOIN <YourData> d ON h.StartHour <=DATEPART(hh,d.EntryTime) and DATEPART(hh,d.EntryTime)<h.EndHour
这将返回带有时间段的所有记录,如果在特定时间范围内没有车辆进入停车场,甚至会返回一条记录。将 Period 列拖放到交叉表的列部分,将 Day 列拖放到 Rows 部分。将值列拖到摘要部分。