sql - 将聚合函数 SUM 与列相乘?
问题描述
有没有办法将聚合函数相乘?我需要SUM(ma.gewight)
为每篇文章乘以(例如,一篇文章是 H114972,它是铁,是 32,1 米)所以GROUP BY
所有相同的文章和每篇不同的文章都需要乘以不同的数字(我所在的列使用乘法是e.best_wert
上面提到的米)。所以基本上我需要乘以- 但它不起作用SUM(ma.gewicht)
。e.best_wert
PS。Gewicht = 重量
PSS。e.best_wert = 重量值/米
SELECT m.artikel, COUNT(ei.bestell_po) bestell_po_menge, SUM(ma.gewicht) AS summe_gewicht--, SUM(e.best_wert*ma.gewicht) AS summe_kg
FROM MATV030 m
INNER JOIN EINV030 e ON e.BESTELL_NR = m.BESTELL_NR
INNER JOIN EINV035 ei ON e.bestell_nr = ei.bestell_nr
INNER JOIN MATV010 ma ON m.ARTIKEL = ma.ARTIKEL
WHERE e.lieferant = '6000176' AND m.menge_buch <> 0
--AND m.artikel = 'H114972'
AND m.bs = 'WE' AND m.budatum >= '20190101' AND m.budatum < '20190201'
GROUP BY m.artikel, ma.gewicht
ORDER BY m.artikel ASC
解决方案
尝试这个,
;With CTE as
(
SELECT ma.ARTIKEL, SUM(ma.gewicht) AS summe_gewicht--, SUM(e.best_wert*ma.gewicht) AS summe_kg
FROM MATV030 m
INNER JOIN MATV010 ma ON m.ARTIKEL = ma.ARTIKEL
WHERE m.menge_buch > 0
--AND m.artikel = 'H114972'
AND m.bs = 'WE' AND m.budatum >= '20190101' AND m.budatum < '20190201'
GROUP BY m.ARTIKEL
--ORDER BY m.artikel ASC
)
SELECT m.artikel, COUNT(ei.bestell_po) bestell_po_menge,summe_gewicht, summe_gewicht*e.best_wert AS summe_kg
FROM CTE C
inner join MATV030 m on m.artikel=c.artikel
INNER JOIN EINV030 e ON e.BESTELL_NR = m.BESTELL_NR
INNER JOIN EINV035 ei ON e.bestell_nr = ei.bestell_nr
WHERE e.lieferant = '6000176'
GROUP BY m.artikel
ORDER BY m.artikel ASC
推荐阅读
- java - 为什么methodName(类名)有效但methodName(类
名称)没有 - npm - 安装 Gatsby Starter 时出错“安装“尖锐”模块时出错了”
- python - Python列表,用匹配索引改变匹配项的值
- vue.js - 以编程方式触发 q-table 中的行点击事件
- javascript - C# Linq SelectMany,TypeScript 等价物
- javascript - React:如何纠正仅在尝试清除状态后发生的“array.push 不是函数”错误?
- ios - Swift 'fabs' 已弃用:重命名为 'abs'
- c - 在 C 中分配给静态变量的内存
- firebase-realtime-database - 如何将 Firebase 实时数据库项目限制为对象中存在的“用户”
- java - 谁能帮我理解我的 Java 类中的这段代码有什么问题