我试图找到一个解决方案,但是没有成功。我有订单标题和订单明细表。我正在尝试退回所有具有特定部分的订单,而不是其他。
例如,退货单仅包含A部分,并明确排除B和C。
我们非常感谢您的帮助。
样本数据:
在此示例中,我想返回订单(OrderNumber和OrderLine),其中A部分是订单中的唯一部分(10003)。
答案 0 :(得分:0)
像这样吗?
select * from order where orderid in
(
select orderid from order
inner join orderdetail on order.orderid = orderdetail.orderid
where orderdetail.partname in ('A', 'B')
)
and orderid not in
(
select orderid from order
inner join orderdetail on order.orderid = orderdetail.orderid
where orderdetail.partname in ('C')
)
答案 1 :(得分:0)
尝试一下。
SELECT *
FROM Tbl t
WHERE NOT EXISTS (
SELECT 1
FROM Tbl
WHERE t.OrderNumber = OrderNumber AND Part <> 'A'
)
答案 2 :(得分:0)
您可以尝试以下查询:
SELECT t.ordernumber, t.orderline
FROM test AS t
WHERE t.ordernumber NOT IN (SELECT ordernumber
FROM test
WHERE part IN ('B','C'));
输出:
ordernumber | orderline
10003 | 1