Как использовать условный агрегат для общего брутто - PullRequest
0 голосов
/ 28 мая 2020

У меня есть этот запрос:

SELECT CAST(co.DateCreated AS DATE) AS Date, 
SUM(w.Gross),
       SUM(CASE WHEN co.BookingSourceId = 1 THEN 1 ELSE 0 END) as Website,
       SUM(CASE WHEN co.BookingSourceId = 2 THEN 1 ELSE 0 END) as Phone,
       COUNT(*) as Total_Orders
FROM [Sterlingbuild].[dbo].[CustomerOrder] co
INNER JOIN ( SELECT Gross, CustomerOrderId, p.ProductBrandId
             FROM [Sterlingbuild].[dbo].[CustomerOrderItem] coi 
             INNER JOIN [Sterlingbuild].[dbo].[Product] p ON coi.ProductId = p.ProductId
             ) w ON co.CustomerOrderId = w.CustomerOrderId
WHERE CustomerOrderStatusId = 7 AND DepartmentId = 1 AND w.ProductBrandId = 7
GROUP BY CAST(co.DateCreated AS DATE)
ORDER BY CAST(co.DateCreated AS DATE)

На данный момент он возвращает количество заказов, сделанных по телефону / веб-сайту, однако я хочу получить общий ВАЛОВОЙ для обоих телефонов / веб-сайтов. Как мне изменить запрос для достижения этот.

Использование SQL сервера

1 Ответ

0 голосов
/ 28 мая 2020

Суммируйте gross:

   SUM(CASE WHEN co.BookingSourceId = 1 THEN w.gross ELSE 0 END) as Website_gross,
   SUM(CASE WHEN co.BookingSourceId = 2 THEN w.gross ELSE 0 END) as Phone_gross,
...