【发布时间】:2013-01-30 01:08:13
【问题描述】:
我创建了一个包含“tablix”的报告,该报告使用基于销售数据的数据集。销售数据按日期和UPC分组;附加到该数据集的是产品属性和库存数量,数据示例如下:
date upc qty_sold style color size on_hand_inventory
1/1/13 123456789111 5 abc black m 50
1/1/13 123456789112 4 abc black l 40
1/2/13 123456789111 2 abc black l 40
1/2/13 123456789114 5 efg red m 70
1/3/13 123456789115 4 efg red l 20
1/1/13 123456789114 2 efg red m 70
我将产品属性(样式、颜色、尺寸)作为行组,将库存数量作为列。
行库存是正确的,但总数总是显示库存数量的许多倍数。这是因为,例如,abc-black-m 可能只出现一天,但 abc-black-l 可能出现很多天,因此组 abc-black 的库存数量总和所有 abc-black- l 行和一个 abc-black-m 行。
我需要正确的公式来合计行组的库存。如果 UPC 还没有被求和,它基本上只需要对 on_hand_inventory 列求和。
【问题讨论】:
-
您需要更具体地了解“正确公式”的语义,“如果 UPC 还没有被求和”是什么意思?
-
@Jeroen 是对的,您需要提供更多信息。我看不出
UPC hasn't be sum'ed already的正确公式是什么。 -
数据中有两个abc-black-l和一个abc-black-m。如果我想在 tablix 中获取 abc-black 组的 on_hand_inventory 总数,常规 sum() 函数给我 130 (40+40+50),但它应该是 90 (50+40)。因此,当我说我需要“如果尚未计算 UPC 时求和”时,我的意思是对每个 UPC 只计算一次 on_hand_inventory 列的库存求和()的公式。但是可能有更好的方法......我只是不知道。
-
几个问题 - 请确认您使用的是哪个 SQL Server 版本?上面的数据集是否是报表数据集中列的精确表示以及它可能返回的内容的准确示例,即未应用分组,这些是实际返回的行?
-
SQL Server 9.0.4060。数据已经按日期和 UPC 分组,尽管不需要,因为我也可以在 SSRS 中这样做;该示例中唯一缺少的列是产品描述和表示日期列的月/年/周数的列。