【问题标题】:Returning Multiples of SUM when joining two tables连接两个表时返回 SUM 的倍数
【发布时间】:2014-12-03 16:13:16
【问题描述】:

当我加入这两个表时,总和结果是被查询表中行数的倍数。例如,sum(jle.Unit Price) 应该是 $834,485.00。但是,它返回的值为 7760710.50 美元。它对该表中的行求和 31 次,即 jpl 表中的相同行数减一。 jpl.[总价格]上的总和相同。返回结果的 3 倍(对于 jle 表中的三行)。我究竟做错了什么。我想将此添加到已经基于 Job No_ 字段工作的查询中。

select  jle.[Job No_], sum(jle.[Unit Price]) as 'Invoiced Amount', sum(jpl.[Total Price])as 'Sale $'
from [Job Ledger Entry] jle join [Job Planning Line] jpl on jle.[Job No_] = jpl.[Job No_]
where   jle.[Job No_] = 'j-2397'
group by    jle. [Job No_]

【问题讨论】:

  • 同一个作业#的[作业分类帐分录]中的所有分录的单价是否相同?如果是这样,您可以使用 AVG 而不是 SUM。另一种选择是使用 MIN

标签: sql-server-2005 join sum


【解决方案1】:

试试这个。

select  jpl.[Job No_], SUM(jle.[Unit Price]) as 'Invoiced Amount', MIN(jpl.[Total Price]) AS 'Sale $'
from [Job Planning Line] jpl INNER JOIN (SELECT DISTINCT [Job No_], [Unit Price] FROM [Job LEdger Entry]) AS jle on jle.[Job No_] = jpl.[Job No_]
where   jpl.[Job No_] = 'j-2397'
group by    jpl. [Job No_]

【讨论】:

    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多