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

Есть таблица

ФИО / Дата производства / Дата прихода

Иванов 02.01.17 04.02.18
Иванов 05.02.17 02.05.18
Сидоров 25.02.17 03.03.18
Петров 11.03.17 18.01.18
Сидоров 24.05.17 24.04.18

Запрос в конечным итоге должен выдать уникальные записи, в интервале даты производства с 01.01.17 по 31.06.17 и в интервале даты прихода с 01.01.18 - 31.01.18, 01.02.18 - 28.02.18, 01.03.18-31.03.18, 01.04.18-30.04.18, 01.05.18-31.05.18

Выходная таблица в виде
ФИО / Кол_во (дата прихода 01.01.18-31.01.18) / Кол_во (дата прихода 01.02.18-28.02.18) / Кол_во (дата прихода 01.03.18-31.03.18)

Не могу понять как реализовать несколько count ов с разными условиями в нескольких полях. Подскажите пожалуйста, пути решения.

Спасибо.
...
Рейтинг: 0 / 0
Выборка количества записей, несколько count-ов по условию
    #39616691
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unid,

Код: sql
1.
sum(case When [Дата прихода] between '2018-01-01' and '2018-01-31' Then 1 end) as Kol_201801
...
Рейтинг: 0 / 0
Выборка количества записей, несколько count-ов по условию
    #39616696
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unid,

по хорощему сгенерить таблицу месяцев с названиями и по ней разворачивать

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
DECLARE @T TABLE 
(
	Name	VARCHAR(255),
	F	Date,
	T	Date
)
INSERT INTO @t
VALUES
('Иванов'	,'02 jan 17', '04 feb 18'), 
('Иванов'	,'05 feb 17', '02 may 18'),
('Сидоров'	,'25 feb 17', '03 mar 18'),
('Петров'	,'11 mar 17', '18 jan 18'),
('Сидоров'	,'24 apr 17', '24 apr 18') 

SELECT 
	Name, 
	SUM(CASE WHEN T >= '01 jan 2018' AND T <= '31 jan 2018' THEN 1 ELSE 0 END ) as '01.01.18 - 31.01.2018',
	SUM(CASE WHEN T >= '01 feb 2018' AND T <= '28 feb 2018' THEN 1 ELSE 0 END ) as '01.02.18 - 31.02.2018'
FROM @t
GROUP BY Name
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка количества записей, несколько count-ов по условию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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