powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Rollup - Сделать группировку с подитогами по году, полугодию, кварталу, месяцу...
2 сообщений из 2, страница 1 из 1
Rollup - Сделать группировку с подитогами по году, полугодию, кварталу, месяцу...
    #39727560
avpetrov27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Есть таблица с данными:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table Table1
(_date datetime,
_value int)
insert into Table1 values ('01-01-2018', 9)
insert into Table1 values ('07-01-2018', 8)
insert into Table1 values ('02-02-2018', 7)
insert into Table1 values ('28-02-2018', 6)
insert into Table1 values ('01-03-2018', 5)
insert into Table1 values ('01-06-2018', 5)
insert into Table1 values ('01-07-2018', 5)
insert into Table1 values ('01-08-2018', 5)
insert into Table1 values ('01-09-2018', 5)
insert into Table1 values ('31-12-2018', 5)


Задача: Нужно получить сумму по _value с подитогами.
Скрипт:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select 
	year(_date) as _year,
	(datepart(quarter, _date)-1)/2 + 1 as _halfYear,
	datepart(quarter, _date) as _quarter,
	month(_date) as _month,
	sum(_value) as _Sum
from Table1
group by
	year(_date),
	rollup(
	(datepart(quarter, _date)-1)/2 + 1,
	datepart(quarter, _date),
	month(_date)
	)


Результат:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
_year	halfYear	_quarter	_month	_Sum
2018	1	1	1	17
2018	1	1	2	13
2018	1	1	3	5
2018	1	1	NULL	35
2018	1	2	6	5
2018	1	2	NULL	5
2018	*NULL	NULL	NULL	40
2018	2	3	7	5
2018	2	3	8	5
2018	2	3	9	5
2018	2	3	NULL	15
2018	2	4	12	5
2018	2	4	NULL	5
2018	*NULL	NULL	NULL	20
2018	NULL	NULL	NULL	60


Проблема: В строках подитогов полугодий - отображается NULL-значения(выделил *), а не номер полугодия.
Подскажите, как можно корректно переписать условие на группировку полугодия?
Спасибо.
...
Рейтинг: 0 / 0
Rollup - Сделать группировку с подитогами по году, полугодию, кварталу, месяцу...
    #39727562
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
with t as
(
select {d '2018-01-01'} as _date, 1 value  union
select {d '2017-01-01'} as _date, 2 value 
),
tt as
(
select 
	year(_date) as _year,
	(datepart(quarter, _date)-1)/2 + 1 as _halfYear,
	 datepart(quarter, _date) as _quarter,
	month(_date) as _month,
    value
 from t
)

select  _year,
	_halfYear,
	_quarter,
	_month,
        sum(value)
from tt
group by
	_year,
	rollup(
        _halfYear,
	_quarter,
	_month
	)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Rollup - Сделать группировку с подитогами по году, полугодию, кварталу, месяцу...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]