我使用的是MySQL 5.0.88/Coldfusion8
,我有一個包含基於條形碼/ EAN的產品的表格。如何僅在組中的每條記錄符合MySQL中的某個條件時才選擇分組記錄?
所以在尺寸S,M,L,XL
產品123將有四個表中的記錄
product size ean qty disregard_inventory
123 S 1111111111111 5 0
123 M 1111111111112 7 0
123 L 1111111111113 1 0
123 XL 1111111111114 2 0
現在我正在尋找這個表像這樣:
SELECT count(a.id) AS total_records, a.disregard_inventory, a.qty
FROM artikelstammdaten a
...
GROUP BY a.style
HAVING sum(a.qty) != 0 OR (a.disregard_inventory = 1)
該工程確定和選擇所有產品哪些沒有賣完(總和> 0在所有的東西)/總是可用
我現在想添加一個功能因此用戶可以搜索產品,每個尺寸至少有1個尺寸爲。在這種情況下,風格123
123 S 1
123 M 0
123 L 12
123 XL 9
將不包括在結果集,作爲size M
被搶購一空。
但是我無法讓它工作。這是我(生產垃圾):
GROUP BY a.style
<cfif form.select_type EQ "running_sizes">
HAVING a.qty!= 0 OR (a.disregard_inventory = 1)
<cfelse>
HAVING sum(a.bestand) != 0 OR (a.disregard_inventory = 1)
</cfif>
問題:
通過style
是它在所有可能的組,只包括style
當每個底層ean
擁有量> 0?如果是這樣,謝謝指點!
編輯:
這裏是我完整的查詢,其中我與測試:
SELECT count(a.id) AS gesamt_datensaetze, a.nos, a.nos_anzeige, a.bestand, SUM(a.bestand>0) AS what
FROM artikelstammdaten a
WHERE a.aktiv = "ja"
AND a.firma LIKE "some_company"
// groups by seller_id, style
GROUP BY a.iln, a.artikelnummer
HAVING sum(a.bestand) != 0 OR (a.nos = "ja" AND a.nos_anzeige = "ja")
AND (SUM(a.bestand > 0) = COUNT(*))
解決方案:
Partenthesis mising:
HAVING ((sum(a.bestand) != 0) OR (a.nos = "ja" AND a.nos_anzeige = "ja"))
AND (SUM(a.bestand > 0) = gesamt_datensaetze )
這工作。
沒問題。這聽起來也不錯。嘗試 – frequent
@frequent我的查詢是否能解決問題? – Jocelyn
仍然想知道該怎麼做的結果。給我一分鐘 – frequent