我有这个疑问,你可以看到:嵌套组在SQL Server
SELECT
[LineId]
,[TestPackageId]
,[MaterialDescriptionId]
,isnull(sum([RequestQuantity]),0) as TotalMRC
,isnull(sum([QuantityDeliver]),0) TotalMIV
,isnull(sum([QuantityDeliverToMember]),0) totalIMIV
,isnull(sum([QuantityDeliver]),0) - isnull(sum([QuantityDeliverToMember]),0) as Warehouse
FROM
[SPMS2].[dbo].[ViewMTO2]
GROUP BY
[LineId], [TestPackageId], [MaterialDescriptionId]
结果是:
lindid tp matDes mrc miv imiv warehouse
101973 7927 61075 2 2 0 2
101991 8666 70721 1 1 0 1
102052 8751 71008 48 16 0 16
99626 8053 61075 0 0 0 0
问题是仓库的该值为false .The仓库值只需计算MaterialDescriptionId
仓库的值应该如下计算:TotalMIV-totalIMIV
不是针对每个行([LineId],[TestPackageId],[MaterialDescriptionId])每个MaterialDescriptionId
的真实结果是
lindid tp matDes mrc miv imiv warehouse
101973 7927 61075 2 2 0 2
101991 8666 70721 1 1 0 1
102052 8751 71008 48 16 0 16
99626 8053 61075 0 0 0 2
正如你可以看到这两个项目61075
应该是2.因为它是根据MaterialDescriptionId
计算。
我该如何在查询中做到这一点?
这里是我的viewmto2
结果(空值为零)
您是否可以在分组前通过 –
@Prdp添加'ViewMTO2'表格的样本数据'当您说'warehouse'基于'matDesc'时,请参阅更新亲爱的 –
,这会使结果集有点混乱。由于您的结果集基于所有3个字段,但您希望仓库仅基于1,因此您必须确保当用户在单独的行上看到2和2时,他们明白该“matDesc”值的“总数”真的是2而不是4,这对你的用户来说会清楚吗? – SlimsGhost