【发布时间】:2022-01-13 13:27:08
【问题描述】:
这可能有一个相当简单的解决方案,但我已经苦苦挣扎了一段时间,由于对 SQL 非常陌生,因此找不到解决方案。我目前正在编写一个视图,我想在其中添加一个嵌套选择语句来使用 SUM 函数计算每一行的 KPI。 SUM 工作正常,但它对 all 值求和,而不是每行中的值。我尝试过使用 CTE 和窗口函数,但无法正常工作。
我的代码是:
SELECT
some variables as some aliases
...
, (SELECT SUM([EK_NETTO]+[F_PORTO]+[F_DIFFERENZ_OK])
FROM [RDWH].[dbo].[F_WARENEINKAUF]
WHERE [REKO_ID] IN('FAKTRG', 'OFFRG', 'PORTO', 'DIFFOK')
) as [gross_purchase_amount]
FROM [RDWH].[dbo].[F_WARENEINKAUF]
这是结果:
https://i.stack.imgur.com/dg3Nl.png
如您所见,每个供应商的价值都是相同的。
非常感谢任何帮助!
【问题讨论】:
-
如果没有子查询的列只有
[EK_NETTO]+[F_PORTO]+[F_DIFFERENZ_OK]怎么样? -
原则上这是可行的,但我只想在满足 where 条件时对值求和,所以我想我会使用子查询来实现这一点......编辑:我需要多个不同的计算where 子句就像上面的一个,所以在代码之后会有更多类似的,不同的值被求和,不同的 where 子句被满足。我不知道如何以不同的方式实现它,所以我感谢任何输入!
-
乘以 1 为真 0 为假
-
你需要有一些列连接 sum 子查询和 F_WARENEINKAUF。
-
您需要在子查询中从您的行中添加一列,因此子查询只会找到与主行匹配的项目。