我遇到的问题是SQL Server Reporting Services不喜欢Sum(First())表示法。它仅允许Sum()或First()。
上下文
我正在创建对帐报告。 IE。我们开始了什么 socks ,期初订购了什么,期末库存了多少。
数据集返回类似
类型,产品,客户,开始库存(SAS),订购数量,结束库存(SAE)
导出1,1,100,5,90
导出,1,2,100,5,90
国内2,2,200,10,150
国内2,2,200,20,150
国内2,3,200,30,150
我按类型分组,然后按产品分组,并列出购买该产品的客户。
我想显示SAS,订购数量和SAE的总数,但是如果我对SAS或SAE求和,则产品1和2的值分别为100和200时,分别得到200和600的值。
我以为我可以做一个Sum(First()),但是SSRS提示说我不能在一个聚合中拥有一个聚合。
理想情况下,SSRS需要一个Sum(Distinct())
解决方案到目前为止
1.不要显示开始时的库存和结束时的库存作为总计的一部分。
2.直接在报告中编写一些代码以进行计算。尝试了这个-没按我预期的那样工作。
3.编写一个程序集进行计算。 (还没尝试过这个)
编辑-问题澄清
问题源于以下事实:实际上这是两个报告合并为一个报告(如我所见)。生产报告和销售报告。
该报告试图解决这些标准
复杂的因素是我们卖给谁的人。除此之外,这将是相对容易的。但是包括它意味着其他顶线数字(开始时的库存和结束时的库存)与销售的产品无关,除了特定的产品。
最佳答案
我有一个类似的问题,最终在查询中使用ROW_NUMBER为行值提供一个整数,然后使用SUM(IIF(myRowNumber = 1,myValue,0))。
开始工作并提供更多数据时,我将对其进行编辑,但认为这可能足以使您入门。我也对阿道夫的解决方案感到好奇。
关于sql-server - 我如何绕过Sum(First(...))不允许的限制是SSRS2005,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/771040/