У меня следующий запрос SQL, моя цель состояла в том, чтобы составить промежуточный итог и общую сумму, сгруппировав промежуточные итоги по продуктам, но моя проблема заключалась в том, что если бы я использовал только «group by», он должен был бы добавить все поля «выберите», и результат не будет желаемым. Поэтому я попытался использовать «набор группировки», но он выдает следующую ошибку
«Каждое выражение GROUP BY должно содержать хотя бы один столбец, который не является внешней ссылкой»
У кого-нибудь есть решение для вышеуказанной проблемы или возможность группировки только по продукту?
SELECT
p.id_product,
p.name,
dd.name ,
isnull(p.internal code, '------'),
{fn CONCAT(CAST(d.id_division AS varchar), {fn CONCAT(' - ', d.name)}) },
sum(vs.value1),
sum(p.value2),
sum(p.value2 * vs.value1)
FROM product p
LEFT JOIN division d on d.id_division = p.id_division
LEFT JOIN division2 dd on dd.id_product = p.id_product
LEFT JOIN value_stockroom vs on vs.id_product = p.id_product and vs.id_division2 = dd.id_division2
GROUP BY
GROUPING SETS((p.id_product, p.name), (dd.name), (p.internal_code), (d.id_division, d.name), NULL)
ORDER BY
p.name, p.id_product, d.name
Я новичок, используя предложение Grouping set