#sql #sql-server #sum
#sql #sql-сервер #сумма
Вопрос:
Мне нужна сумма этого результата:
SELECT
ROUND(
(invoicesitems.pscost / invoicesitems.inmedunit -
AVG(ISNULL(mainexstock.peacecost,0)) / invoicesitems.inmedunit), 2)
*
CASE WHEN units.unitqty=3 THEN (invoicesitems.bigqty *
invoicesitems.inbigunit * invoicesitems.inmedunit)
(invoicesitems.medqty * invoicesitems.inmedunit)
invoicesitems.smallqty
ELSE (invoicesitems.bigqty * invoicesitems.inmedunit)
invoicesitems.smallqty
END AS PROFITS
FROM invoicesitems
INNER JOIN mainexstock ON mainexstock.pid = invoicesitems.pid
INNER JOIN units ON units.[uid] = invoicesitems.punits
WHERE invoicesitems.bid = 'B-0480580'
GROUP BY
invoicesitems.pid, invoicesitems.inbigunit,
invoicesitems.inmedunit, invoicesitems.bigqty,
invoicesitems.medqty, invoicesitems.smallqty,
invoicesitems.pscost, units.unitqty
Комментарии:
1. Какую СУБД вы используете?
2. SQL management studio 2014
Ответ №1:
Вы можете использовать его как CTE и получить сумму. Например:
with a as (
-- your big query here
)
select sum(profits) as profits from a;
Комментарии:
1. Неправильный синтаксис рядом с ключевым словом ‘with’. Если этот оператор является обычным табличным выражением, предложением xmlnamespaces или предложением контекста отслеживания изменений, предыдущий оператор должен заканчиваться точкой с запятой