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

Откуда: SPb
Сообщений: 737
Есть запрос, который группирует по менеджерам заказы за период. Нужно его модифицировать таким образом, чтобы он показывал группировку за период + разбивку по каждому дню периода. То должен предоставлять информацию сколько заказов выполнил каждый менеджер за весь период с разбивкой по каждому дню.

За счёт каких инструментов можно реализовать такой запрос?

Заранее благодарен!

select
	Managers.ManagerName,
	COUNT(Orders.OrderID) as Counters
from
	Orders
inner join
	Managers
ON Orders.ManagerLoaderID =
	Managers.ManagerID
where 
	Managers.ManagerID != 1
and
	Orders.DateOrder
between
	@StartDate and @EndDate

group by Managers.ManagerName

with rollup
13 май 11, 17:58    [10649896]     Ответить | Цитировать Сообщить модератору
 Re: группировка с разбивкой по дням  [new]
Начинающий SQL 2008
Member

Откуда:
Сообщений: 438
strizzz,
???
set dateformat dmy

declare @t table (id int, DataBegin date, DataEnd date)
insert @t values (1,	'31.01.2011','01.05.2011'), (2,	'20.12.2010','06.03.2011')

select id, convert(varchar,DataBegin,104) [DataBegin], convert(varchar,DataEnd,104) [DataEnd] from @t

select id, dateadd(m, b+number, 0) d from
(select id, datediff(m, 0, DataBegin) b, datediff(m, 0, DataEnd) e from @t) t 
cross join master..spt_values v 
where v.type ='P' and (v.number between 0 and (e-b))

Принцип позаимствован отсюда:
https://www.sql.ru/forum/actualthread.aspx?tid=850338&hl=number
13 май 11, 18:03    [10649918]     Ответить | Цитировать Сообщить модератору
 Re: группировка с разбивкой по дням  [new]
iljy
Member

Откуда:
Сообщений: 8711
strizzz,

group by m.ManagerName,datediff(d,0,o.DateOrder) with rollup
И привыкайте ставить псевдонимы
13 май 11, 18:05    [10649928]     Ответить | Цитировать Сообщить модератору
 Re: группировка с разбивкой по дням  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
strizzz, ?

select
	Managers.ManagerName,
	COUNT(Orders.OrderID) as Counters,
           Orders.DateOrder

from Managers

	left outer join Orders

	ON Orders.ManagerLoaderID =
	Managers.ManagerID
where 
	Managers.ManagerID != 1
and
	Orders.DateOrder
between
	@StartDate and @EndDate

group by Managers.ManagerName,Orders.DateOrder
with rollup
13 май 11, 18:06    [10649933]     Ответить | Цитировать Сообщить модератору
 Re: группировка с разбивкой по дням  [new]
bibiskula
Member

Откуда: Пöндус(Инöстрäнный öгент)
Сообщений: 52988
strizzz,

А если в гроуп бай добавить&
group by  Managers.ManagerName, day(Orders.DateOrder)
13 май 11, 18:07    [10649935]     Ответить | Цитировать Сообщить модератору
 Re: группировка с разбивкой по дням  [new]
iljy
Member

Откуда:
Сообщений: 8711
strizzz,

вот что бывает при отсутствии четкой постановки задачи
13 май 11, 18:11    [10649958]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить