我有一个Orders
表和一个OrderItem
表。我想选择2个日期之间发货的所有OrderItems
,并选择在2个日期之外发运的特定类型的其他OrderItem
,如果它是Order
的一部分{ {1}}在两个日期之间发送OrderItems
。
当我第一次想到它时,这似乎很容易,但我很难将其置于SQL
声明中。我使用SQL Server
。
编辑:
是的,我熟悉between关键字。我所拥有的是Order
,说Order #10001
。它有2个项目,01/20/2015
附带的产品和02/04/2015
标记为已发货的保修。所以当我运行我的查询时:
SELECT *
FROM OrderItems
WHERE ShipDate BETWEEN '01/01/2015' AND '01/31/2015'
我只收到1件产品,我也想获得Order
上的保修。
希望澄清我的问题。
答案 0 :(得分:0)
您熟悉BETWEEN
关键字吗?
选择...... col BETWEEN AND
如果您在问题中添加更多信息,例如样本数据,我可以详细说明答案。
答案 1 :(得分:0)
你可以这样做:
SELECT *
FROM OrderItems
WHERE OrderID IN(
SELECT DISTINCT OrderID
FROM OrderItems
WHERE ShipDate BETWEEN '01/01/2015' AND '01/31/2015'
)
或者:
SELECT *
FROM OrderItems oi1
JOIN (
SELECT DISTINCT OrderID
FROM OrderItems
WHERE ShipDate BETWEEN '01/01/2015' AND '01/31/2015'
) oi2 ON oi1.OrderID = oi2.OrderID