Я получаю следующую ошибку при запуске этого кода. пожалуйста, помогите мне.Ошибка с группой по заявлению?
SELECT store, COUNT(DISTINCT saledate), CountNov, CountDec, SumNov, SumDec, (SumNov/CountNov) AS NovAvgRvn, (SumDec/CountDec) AS DecAvgRvn FROM
(
SELECT store, saledate,
CASE WHEN SUM(CASE EXTRACT(MONTH FROM saledate) WHEN '11' THEN amt END) IS NULL THEN 0
ELSE SUM(CASE EXTRACT(MONTH FROM saledate) WHEN '11' THEN amt END)
END AS SumNov,
CASE WHEN SUM(CASE EXTRACT(MONTH FROM saledate) WHEN '12' THEN amt END) IS NULL THEN 0
ELSE SUM(CASE EXTRACT(MONTH FROM saledate) WHEN '12' THEN amt END)
END AS SumDec,
CASE WHEN COUNT(DISTINCT CASE EXTRACT(MONTH FROM saledate) WHEN '11' THEN saledate END) IS NULL THEN 0
ELSE COUNT(DISTINCT CASE EXTRACT(MONTH FROM saledate) WHEN '11' THEN saledate END)
END AS CountNov,
CASE WHEN COUNT(DISTINCT CASE EXTRACT(MONTH FROM saledate) WHEN '12' THEN saledate END) IS NULL THEN 0
ELSE COUNT(DISTINCT CASE EXTRACT(MONTH FROM saledate) WHEN '12' THEN saledate END)
END AS CountDec
FROM trnsact
WHERE stype = 'p'
GROUP BY store, saledate
) AS T1
WHERE CountDec > 0 AND CountNov > 0
GROUP BY store
ORDER BY store;
Ошибка: Код ошибки - 3504 Сообщение об ошибке - [Teradata Database] [TeraJDBC 15.10.00.05] [Ошибка 3504] [SQLState HY000] Выбранные без агрегированные значения должны быть частью соответствующей группы.
Anjani, Спасибо за ур ответ но я не могу использовать CountNov, CountDec, SumNov, SumDec, поскольку они являются совокупными функциями, которые используют сумму, coount. Так что старайтесь с NovAvgRvn, DecAvgRvn и см. – Vish
Но все-таки я получаю ошибку, не уверен, какое не суммарное значение я упускаю ??? – Vish