Как мне получить результат?

#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 или предложением контекста отслеживания изменений, предыдущий оператор должен заканчиваться точкой с запятой