sql - 使用多个表时的 SUM 函数无法正常工作
问题描述
目前我正在使用以下代码:
SELECT psparcomp.ps_comp,
MPA_Desc.Side,
MPA_Desc.Color_Code,
MPA_Desc.Description,
sum(ISNULL(Forecasts.schd_discr_qty, 0)) AS [Order Amount],
Product_Structure.pt_promo,
Forecasts.sod_nbr,
SUM(PaintSched.qty) AS schedamt
FROM MPA_Desc
LEFT OUTER JOIN psparcomp ON MPA_Desc.MPA_Number = psparcomp.ps_comp
LEFT OUTER JOIN Forecasts ON psparcomp.ps_par = Forecasts.sod_part
LEFT OUTER JOIN Product_Structure
ON psparcomp.ps_par = Product_Structure.pt_part
LEFT OUTER JOIN PaintSched ON MPA_Desc.MPAID = PaintSched.MPAID
WHERE Forecasts.schd_discr_qty > 0
GROUP BY psparcomp.ps_comp,
MPA_Desc.Side,
MPA_Desc.Color_Code,
MPA_Desc.Description,
ISNULL(Forecasts.schd_discr_qty, 0),
Product_Structure.pt_promo,
Forecasts.sod_nbr
这些是我的结果:
我需要结果只显示“MPA-0856”和订单金额的总和。它拉多次,因为从预测表中,它拉的零件号是不同的零件号,但这些是用于多个零件号的涂漆零件。我在这里为我们的油漆部门创建了一份报告,他们只需要查看他们需要油漆的总量,而不是按零件编号的数量。我在连接上尝试了几种不同的方法,但似乎没有任何效果。有人可以帮忙吗?
解决方案
只是猜测:您的 GROUP BY 子句似乎不应该列出此项目:
ISNULL(Forecasts.schd_discr_qty, 0)
因为那是所得款项的一部分。
此外,从 group by 中删除并选择任何可能在不同行中拆分结果的项目(例如颜色、侧面等)
推荐阅读
- node.js - 如何解决insertOne不是函数问题
- matlab - Simulink:simscape 模块和 simpowersystems 模块的连接
- c++ - 比较if语句中的字符串时如何修复'operator =='不匹配
- python - 将报价流式传输到 Excel
- postgresql - Postgres 中的默认事务行级别和/或 Sequelize.js 中默认使用的 LOCK 是什么
- discord.js - 如何获取邮件中附件的 URL
- node.js - 即使出现任何错误,重定向也不起作用
- c# - 我正在尝试使用对象列表填充列表视图,但仅显示名称属性,同时允许用户在列表视图中多选项目
- ios - UIImagePickerController 可以直接在故事板上使用吗?
- asp.net - 如何使用点空间从 ASP.NET 中的 shapefile 获取内环(孔)?