【发布时间】:2019-04-11 18:54:35
【问题描述】:
我有两个包含以下数据的表:
table1 (palletid, caseshipped, orderid)
palletid | (caseshipped) | orderid
2002057 | 10.00 | 146
2002058 | 50.00 | 146
2002059 | 25.00 | 146
2002058 | 10.00 | 142
和
table2 (palletid,caseshipping, orderid)
palletid | (caseshipping) | orderid
2002055 | 0.00 | 146
2002056 | 25.00 | 146
2002057 | 10.00 | 146
2002058 | 50.00 | 146
2002059 | 25.00 | 146
2002060 | 75.00 | 146
2002058 | 10.00 | 142
查询tableresult(DISTINCT(table2.palletid),COALESCE(table1.caseshipped,0), orderid的预期结果
palletid | (caseshipped) | orderid
2002055 | 0.00 | 146
2002056 | 0.00 | 146
2002057 | 10.00 | 146
2002058 | 50.00 | 146
2002059 | 25.00 | 146
2002060 | 0.00 | 146
我有以下查询,但我得到一个重复的table2.palletid 错误的table1.caseshipped 和错误的table2.orderid
SELECT DISTINCT table2.palletid,
COALESCE(table1.caseshipped,0) FROM table2
LEFT JOIN table1 ON table2.palletid=table1.PalletID
WHERE table2.orderid = 146
查询结果:
palletid | (caseshipped) | orderid
2002055 | 0.00 | 146
2002056 | 0.00 | 146
2002057 | 10.00 | 146
2002058 | 10.00 | 146 Value should not appear(orderid=142)
2002058 | 50.00 | 146
2002059 | 25.00 | 146
2002060 | 0.00 | 146
如何更正查询以获得预期结果?为什么我得到重复的结果?
我四处寻找类似的问题,但没有找到这个具体情况,但如果有人问过,请直接将我重定向到帖子。
【问题讨论】:
-
输入值是什么..?
-
您的任何一个表(table1 或 table2)都有 2 条记录,palletid=2002058。这会导致您的结果中有多个记录。如果有多条记录,那么您想在结果中保留哪条记录?
-
我在您的表定义中没有看到名为
table1.CaseCount的列。 -
Table1 的 PalletID 2002058 值重复
-
对于您发布的示例数据,您的查询不会产生重复值。所以你没有正确描述问题。
标签: sql sql-server sql-server-2016