我有一个表格,必须为每个订单上的每个客户计算特定零件编号的订单数量。我得到错误SQL代码SUM CASE语句
"Column 'ALL_INFORMATION.CUSTOMER_ID' is invalid in the select list because
it is not contained in either an aggregate function or the GROUP BY clause."
我不知道还有什么要做。以下是我的代码。我感谢任何和所有的帮助。
WITH ALL_INFORMATION
AS (SELECT CUSTOMER_ID, SO_ID, CHANGE_DATE, PART_ID, ORDER_QTY, PRODUCT_LINE FROM SOFBH),
PRODUCT_QUANTITY
AS (
SELECT *,
sum(
case when PART_ID = '3860+' then ORDER_QTY else 0
end) as '3860+',
sum(
case when PART_ID = '3861' then ORDER_QTY else 0
end) as '3861',
sum(
case when PART_ID = '3865' then ORDER_QTY else 0
end) as '3865',
sum(
case when PRODUCT_LINE = '1055' then ORDER_QTY else 0
end) as '1055',
sum(
case when PRODUCT_LINE = '1056' then ORDER_QTY else 0
end) as '1056',
sum(
case when PRODUCT_LINE = '1057' then ORDER_QTY else 0
end) as '1057',
sum(
case when PRODUCT_LINE = '1058' then ORDER_QTY else 0
end) as '1058'
FROM ALL_INFORMATION)
select *
FROM ALL_INFORMATION
GROUP BY CUSTOMER_ID, SO_ID
你使用的是什么dbms? – Eric
Microsoft SQL Server 2016 –