【发布时间】:2020-04-30 17:41:10
【问题描述】:
我正在写一个查询,但我得到了错误的结果。表格如下:
Tbl1(ProId, price,VId)
Tbl2(ProId, price, VId)
我已经写了这个查询:
SELECT
a.ProId, b.ProId,
SUM(a.price) - SUM(b.price) AS TotalPro
FROM
tbl1 AS a
INNER JOIN
tbl2 AS b ON a.ProId = b.ProId
WHERE
a.VId = '1234'
GROUP BY
a.ProId, b.ProId;
此查询返回的答案不正确。我所做的是分别将表一和表二的价格相加,减去它们,答案很好。但是当我加入时,我不知道为什么我得到了错误的答案。两个表中的 ProId 相同,值相同。
【问题讨论】:
-
请分享样本数据和您想要的结果。我们不知道您对这个不正确的 sql 有什么期望,因此很难指导。不过,你的 sql 在语法上是正确的,fwiw。
-
为什么不正确?你期望什么结果,你得到了什么结果?你的数据是什么样的?您拥有的表达式正在返回正确的值,但您的逻辑将是错误的。我的猜测,你有一个笛卡尔积,因为你没有单独聚合。你可能认为
1、2和3之和与1、1、2、2、3和3之和相同(显然,它们不是)。
标签: sql-server database tsql