對此查詢有問題。記錄返回,但沒有分組通過product_id這是我想要的。如果我通過選項從組中刪除其他字段,那麼我得到一個不包含在group by或aggregate函數中的錯誤字段。sql查詢問題
感謝您的幫助
SELECT
o.Product_ID, i.producttitle, i.URLimage,i.price,
i.customfield2, i.season, i.active, i.discontinued,
i.opttitle1, i.opttitle2, i.opttitle3,
SUM(CASE WHEN processdate BETWEEN '2009-08-01 00:00:00.000'
AND '2009-10-31 23:59:00.000'
THEN o.sprice ELSE 0 END) AS totalprice_date1,
SUM(CASE WHEN processdate BETWEEN '2009-11-01 00:00:00.000'
AND '2009-12-31 23:59:00.000'
THEN o.sprice ELSE 0 END) AS totalprice_date2,
SUM(CASE WHEN processdate BETWEEN '2009-08-01 00:00:00.000'
AND '2009-10-31 23:59:00.000'
THEN o.Qty ELSE 0 END) AS qtysold_date1,
SUM(CASE WHEN processdate BETWEEN '2009-11-01 00:00:00.000'
AND '2009-12-31 23:59:00.000'
THEN o.Qty ELSE 0 END) AS qtysold_date2
FROM dbo.getskusold o
inner join imagereport i
on o.product_id = i.product_id
GROUP BY o.Product_ID, i.producttitle, i.URLimage,
i.price, i.customfield2, i.season,
i.active, i.discontinued, i.opttitle1,
i.opttitle2, i.opttitle3
您的SQL看起來正確。 「他們沒有按照product_id分組」是什麼意思?你能提供一個樣本輸出:(a)你得到什麼和(b)你想得到什麼? – Heinzi 2009-11-23 18:04:36
如果產品具有相同的product_id,那麼它應該合併產品的時候會返回同一產品。 – jeff 2009-11-23 18:07:33
它將爲dbo.getskusold和imagereport之間的每個連接結果返回一行,而不是每個product_id的唯一行。 – 2009-11-23 18:09:54