如何绕过Sum(First(...))不允许的限制是SSRS2005

Nat*_*her 5 sql-server reportingservices-2005 reporting-services

我遇到的问题是SQL Server Reporting Services不喜欢Sum(First())表示法.它只允许Sum()或First().

上下文
我正在创建对帐报告.即.什么袜子我们有一个时期的开始,订购什么和我们最后有什么股票.

数据集返回类似的内容

Type,Product,Customer,Stock at Start(SAS), Ordered Qty, Stock At End (SAE)
Export,1,1,100,5,90
Export,1,2,100,5,90
Domestic,2,1,200,10,150
Domestic,2,2,200,20,150
Domestic,2,3,200,30,150

我按类型分组,然后选择产品并列出购买该产品的客户.我想显示SAS,Ordered Qty和SAE的总数,但如果我在SAS或SAE上做了总和,那么当产品1和2分别为100和200时,我得到的值分别为200和600.

我认为我可以做一个Sum(First())但是SSRS抱怨我不能在聚合中有一个聚合.

理想情况下SSRS需要一个Sum(Distinct())

迄今为止的解决方案
1.不要将开始时的库存和最后的库存显示为总计的一部分.
2.直接在报告中编写一些代码来进行计算.尝试过这个 - 没有按照我的预期工作.3.编写程序集进行计算.(没试过这个)

编辑 - 问题澄清
问题源于这样的事实,即实际上两个报告合并为一个(我看到它).生产报告和销售报告.
该报告试图解决这些标准

  • 我们卖给它的市场(出口,国内)
  • 我们有多少库存,
  • 生产了多少,
  • 卖多少钱,
  • 是谁把它卖给了,
  • 我们剩下多少钱.

复杂因素是我们将它卖给谁.不管怎样,它本来就很容易.但包括它意味着其他顶线数字(开始时的库存和最后的库存)与销售的产品无关,而不是特定的产品.

Pau*_*l G 5

我有一个类似的问题,最后在我的查询中使用ROW_NUMBER为行值提供一个整数,然后使用SUM(IIF(myRowNumber = 1,myValue,0)).

当我开始工作并提供更多数据时,我会对此进行编辑,但认为这可能足以让您入门.我对阿道夫的解决方案也很好奇.


tpd*_*pdi 0

写一个子查询。

理想情况下 SSRS 需要 Sum(Distinct())

重写您的查询以正确执行此操作。

我怀疑你的问题是你编写的查询得到了错误的结果,或者你的表设计得很糟糕。在不了解您要做什么的情况下,我无法告诉您如何解决它,但它有一种不好的“气味”。