-5
A
回答
0
正如其他人在評論中所說的,你應該真的嘗試改善你的問題,讓人們更傾向於回答和幫助你。
設置一些測試數據(使你的架構假設):
CREATE TABLE Customers (
CustomerID INT,
CustomerName VARCHAR(50)
)
CREATE TABLE Orders (
OrderId INT,
OrderDate DATETIME,
CustomerID INT,
Product VARCHAR(50)
)
INSERT INTO Customers
SELECT 1, 'John Smith'
UNION
SELECT 2, 'Jane Doe'
UNION
SELECT 3, 'Rachel Booth'
UNION
SELECT 4, 'Steve Barnes'
UNION
SELECT 5, 'Nancy Green'
UNION
SELECT 6, 'Phil Jones'
INSERT INTO Orders
SELECT 1, '2016-09-01', 1, 'Bread'
UNION
SELECT 2, '2016-09-10', 3, 'Milk'
UNION
SELECT 3, '2016-09-19', 1, 'Milk'
UNION
SELECT 4, '2016-10-07', 4, 'Bread'
UNION
SELECT 5, '2016-10-13', 2, 'Milk'
UNION
SELECT 6, '2016-10-15', 4, 'Milk'
UNION
SELECT 7, '2016-10-19', 6, 'Milk'
UNION
SELECT 8, '2016-10-21', 6, 'Ice Cream'
UNION
SELECT 9, '2016-10-27', 1, 'Milk'
UNION
SELECT 10, '2016-10-28', 4, 'Milk'
UNION
SELECT 11, '2016-11-06', 5, 'Ice Cream'
UNION
SELECT 12, '2016-11-09', 5, 'Bread'
,並設置所需的月檢查:
DECLARE @Month DATETIME
SET @Month = '2016-09-01'
我會得到適合您的邏輯類似客戶名單這個:
SELECT DISTINCT c.CustomerName
FROM Customers c
JOIN Orders ob ON ob.CustomerID = c.CustomerID
JOIN Orders omi ON omi.CustomerID = c.CustomerID
WHERE ob.Product = 'Bread'
AND omi.Product IN ('Milk','Ice Cream')
AND DATEADD(month, DATEDIFF(month, 0, ob.OrderDate), 0) = DATEADD(month, DATEDIFF(month, 0, omi.OrderDate), 0)
AND DATEADD(month, DATEDIFF(month, 0, ob.OrderDate), 0) = @Month
相關問題
- 1. SQL查詢或子查詢
- 2. sql查詢:使用哪裏in或foreach?
- 3. SQL查詢中使用ON或加入
- 4. 使用 「與」 和 「或」 SQL查詢
- 5. 使用UNION或嵌套查詢的SQL查詢幫助
- 6. 使用子查詢或連接的SQL查詢
- 7. SQL Server:使用TOP或查詢時查詢失敗
- 8. 使用SQL查詢
- 9. 使用SQL查詢
- 10. 使用SQL查詢
- 11. 使用SQL查詢
- 12. 使用SQL查詢
- 13. 使用SQL查詢
- 14. 使用SQL查詢
- 15. 使用SQL查詢
- 16. 使用SQL查詢
- 17. 使用SQL查詢
- 18. 使用SQL查詢
- 19. 使用SQL查詢
- 20. 使用SQL查詢
- 21. 使用SQL查詢
- 22. 使用SQL查詢
- 23. 使用SQL查詢
- 24. 使用SQL查詢
- 25. 使用SQL查詢
- 26. 使用SQL查詢
- 27. SQL查詢使用SQL Server
- 28. 複雜的SQL查詢或查詢
- 29. SQL查詢:不使用子查詢
- 30. 使用子查詢SQL查詢
請看http://www.w3schools.com/Sql/sql_and_or.asp上的「與AND和OR」在這裏,谷歌的想法。 –
您至少需要共享表結構。並分享您迄今爲止所嘗試的內容。這是SO的工作原理。 –
「麪包」AND(牛奶或冰淇淋)在邏輯上如何編寫它 –