SQL NOT EXIST 在查询结果中返回重复值
SQL NOT EXIST returning duplicate value in query results
嗨,似乎从这个 sql 代码中得到了重复,它应该在 BO 数据 上找到记录,但实际上不是在 Order Data 上使用以下键 Keyorderstatus 我所有的查询结果都在订单数据上了,请问如何解决这个问题?
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 代码中得到了重复,它应该在 BO 数据 上找到记录,但实际上不是在 Order Data 上使用以下键 Keyorderstatus 我所有的查询结果都在订单数据上了,请问如何解决这个问题?
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 不同。
编辑:我添加了与联接不相关的其他字段。您必须将这些分组到。