簡體   English   中英

您如何下載所有批次都符合條件的訂單?

[英]How do you download orders where all batches will meet the condition?

我在mssql數據庫中有兩個表:訂單和批處理。 每個訂單可以有很多手。 成本保持在每批中。 我想繪制所有訂單,其中他的每個訂單的成本高於例如100。如果在訂單的任何部分中成本不大於100,這將取消該訂單的資格。 是否可以在一個查詢中這樣做?

一種簡單的方法使用按順序檢查每個批次的匯總:

SELECT o.id
FROM orders o
INNER JOIN batches b
    ON o.batch_id = b.id
GROUP BY o.id
HAVING COUNT(CASE WHEN b.cost <= 100 THEN 1 END) = 0;

我認為最簡單的方法是使用MIN()

SELECT b.order_id
FROM batches b
GROUP BY b.order_id
HAVING MIN(b.cost) >= 100;

如果您需要訂單信息:

select o.*
from orders o
where not exists (select 1 from batches b where b.order_id = o.order_id and b.cost < 100);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM