在單個查詢中選擇有效的「重複條目」時,遇到了麻煩。使用選擇性日期標準搜索MySQL重複條目
在下面的示例中,重複StockNo
可以跨多個Date
存在。我想搜索StockNo
重複的條目,並且如果在Date
當前的YEAR-MONTH內至少找到1 StockNo
記錄,那麼我還需要選擇可能存在於任何其他YEAR-MONTH中的夥伴。這可能嗎?
實例查詢:
SELECT * FROM `sales`
WHERE `StockNo` IN
(SELECT `StockNo` FROM `sales` GROUP BY `StockNo` HAVING COUNT(*) > 1)
AND `Date` LIKE '2016-11-%'
ORDER BY `StockNo`, `TransactionID`;
實施例的數據:
ID | StockNo | Date
1 | 1 | 2016-11-01
2 | 1 | 2016-11-10
3 | 2 | 2016-11-05
4 | 2 | 2016-10-29
5 | 3 | 2016-10-25
6 | 3 | 2016-10-15
用我的示例查詢和數據,我有3對重複條目。很顯然,由於AND Date LIKE '2016-11-%'
,我只返回3條記錄(ID的1,2 & 3),但是我需要返回ID的1,2,3,4。我想忽略ID的5 & 6,因爲它們都不屬於當前月份。
希望是有道理的。感謝您的任何幫助,您可以提供。
'我想忽略ID的5&6,因爲它們都不屬於當前月份......但是ID 4也不在當前月份中嗎?請向我們展示您的預期產出。 –
期望的輸出應該是ID的1,2,3和4,因爲這些記錄具有「至少一個」記錄,其中日期LIKE'2016-11-%'。 – Stinkys