gpt4 book ai didi

sql - 我加入第二张 table 时的总和不正确

转载 作者:行者123 更新时间:2023-12-04 15:01:39 24 4
gpt4 key购买 nike

这是我第一次请求你的帮助,

实际上我必须创建一个查询,并为它做了一个类似的例子。我有两张 table ,

Report (ReportID, Date, headCount)
Production(ProdID, ReportID, Quantity)

我的问题是使用这个查询,我得到了错误的结果,
SELECT    
Report.date,
SUM(Report.HeadCount) AS SumHeadCount,
SUM(Production.Quantity) AS SumQuantity
FROM
Report
INNER JOIN
Production ON Report.ReportID = Production.ReportID
GROUP BY
Date
ORDER BY
Date

我想有些行被计算了不止一次,你能帮我吗?

编辑

如果我运行查询以获取按天分组的人数总和,我会得到:
  date        Headcount
7/2/2012 1843
7/3/2012 1802
7/4/2012 1858
7/5/2012 1904

对于生产数量,我得到:
2012-07-02  8362
2012-07-03 8042
2012-07-04 8272
2012-07-05 9227

但是当我将这两个查询结合起来时,我得到了一个错误的查询,我预计 7 月 2 日的数量为 8362,而不是 1843,但我得到:
 day      TotalHeadcount    totalQty
7/2/2012 6021 8362
7/3/2012 7193 8042
7/4/2012 6988 8272
7/5/2012 7197 9227

最佳答案

避免这种情况的一种方法(取决于 RDBMS 支持)是

WITH R
AS (SELECT *,
Sum(HeadCount) OVER (PARTITION BY date) AS SumHeadCount
FROM Report)
SELECT R.date,
SumHeadCount,
Sum(P.Quantity) AS SumQuantity
FROM R
JOIN Production P
ON R.ReportID = P.ReportID
GROUP BY R.date, SumHeadCount
ORDER BY R.date

关于sql - 我加入第二张 table 时的总和不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com