Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Sql server 2012  [new]
slonyra
Member

Откуда:
Сообщений: 27
Помогите найти ошибку пожалуйста!
Я создают временную табличку с ID продавцами, мне нужно по продавцам в этой табличке посчитать сумму продаж по каждому за последние пару месяцев, даже если продавец ничего не продал.
Мой код выводит не правильную сумму.
Create table #Pr (prodavec_ID numeric)
Delete from #Pr
Insert into #Pr (prodavec_ID)
Select 123456 union all
Select 654321
...
Select prodavec_ID
,(select sum([сумма])
From dm.prodazhi
Where date between '2015-11-01' and getdate())
From #Pr
18 дек 15, 09:00    [18576269]     Ответить | Цитировать Сообщить модератору
 Re: Sql server 2012  [new]
MrVoid
Member

Откуда:
Сообщений: 333
SELECT prodavec_ID, sum([сумма])
FROM dm.prodazhi
WHERE [date] BETWEEN '2015-11-01' and GetDate()
GROUP BY prodavec_ID
18 дек 15, 09:03    [18576278]     Ответить | Цитировать Сообщить модератору
 Re: Sql server 2012  [new]
slonyra
Member

Откуда:
Сообщений: 27
Таким образом мне выводит только тех продавцов, у которых были продажи. А мне нужны все продавцы из временной таблицы даже с нулевыми продажами
18 дек 15, 09:09    [18576291]     Ответить | Цитировать Сообщить модератору
 Re: Sql server 2012  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1837
slonyra,
SELECT t.prodavec_ID, sum(ISNULL(p.[сумма], 0.00))
FROM #Pr t
    LEFT JOIN dm.prodazhi p ON p.prodavec_ID = t.prodavec_ID AND p.[date] >= '20151101' AND p.[date] <= GetDate()
WHERE 1=1
GROUP BY t.prodavec_ID
18 дек 15, 10:25    [18576532]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить