对此查询有问题。记录返回,但没有分组通过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