SQL NOT EXIST在查询结果中返回重复值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL NOT EXIST在查询结果中返回重复值相关的知识,希望对你有一定的参考价值。
嗨似乎从这个sql代码中得到重复它假设通过使用以下作为键Keyorderstatus来查找不在订单数据上的BO数据的记录我的所有查询结果都已经在订单数据上,如何解决这个问题?
SELECT Keyorderstatus,
OrderNumber,
PartsNo,
HoldType,
ShiptoCode,
BackOrderQty,
OrderStatusCode
FROM [BO Data]
WHERE NOT EXISTS (SELECT *
FROM [BO Data]
WHERE [BO Data].Keyorderstatus = [Order Data].Keyorderstatus
)
AND [BO Data].OrderStatusCode="AWAITING_SHIPPING"
AND NOT EXISTS (SELECT *
FROM [Order Data]
WHERE Keyorderstatus IS NULL);
答案
正如@dfundako所说 - 很难在没有数据表的情况下进行检查。
我认为这个SQL应该做你想做的事情:
SELECT [BO Data].KeyOrderStatus
, OrderNumber
, PartsNo
, HoldType
, ShipToCode
, BackOrderQty
, [BO Data].OrderStatusCode
FROM [BO Data] LEFT JOIN [Order Data] ON [BO Data].KeyOrderStatus <> [Order Data].KeyOrderStatus
WHERE [BO Data].OrderStatusCode = 'AWAITING SHIPPING'
GROUP BY [BO Data].KeyOrderStatus
, [BO Data].OrderStatusCode
检查[Order Data].KeyOrderStatus IS NULL
可能没有必要,因为(我假设)[BO Data].KeyOrderStatus
是主键,因此它必须始终包含一个值,并且SQL检查它是否与[Order Data]中的值不同 - 如果它是NULL,它将与PK。
编辑:我添加了与联接无关的其他字段。你必须将这些分组。
以上是关于SQL NOT EXIST在查询结果中返回重复值的主要内容,如果未能解决你的问题,请参考以下文章