powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка и суммы нескольких периодов в одном запросе.
3 сообщений из 3, страница 1 из 1
Выборка и суммы нескольких периодов в одном запросе.
    #39707871
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть плоская таблица, и есть 2 периода, скажем 01.12.2018 - 30.12.2018 и второй период 01.12.2017 - 30.12.2017


id name date mark и т.д.

1. Вася 10.12.2018 1
2. Вася 11.12.2018 2
3. Коля 01.12.2018 1
4. Дима 05.12.2018 3
5. Вася 22.12.2018 4
6. Вася 07.12.2017 1
7. Коля 15.12.2017 1
8. Коля 18.12.2017 3
9. Коля 28.12.2017 1

Как получить в результате табличку вот такого вида?

name mark 1 mark 2
(01.12.2018 - 30.12.2018) | ( 01.12.2017 - 30.12.2017) (01.12.2018 - 30.12.2018) | ( 01.12.2017 - 30.12.2017)
Коля 1 2 1 0
Вася 0

и т.д.
Т.е. группировку по имени и так что бы поле дата выбиралось по 2-ум периодами, а чтобы был подсчет количество по полю mark и вывод в соответствующую колонку.

Например Берем Колю, считаем сколько mark встречалось в промежутке между 01.12.2018 - 30.12.2018 записываем результат в соответствующую колонку, то же самое со вторым периодом. и так по 5 mark. Дальше следующая строка из первой таблицы.
Можно ли сделать запрос, который формировал бы такой результат, или надо только программным путем?
...
Рейтинг: 0 / 0
Выборка и суммы нескольких периодов в одном запросе.
    #39708132
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий666суммы нескольких периодов
Код: sql
1.
COALESCE(SUM(CASE WHEN `date` BETWEEN @start AND @end THEN mark END), 0)


Валерий666чтобы был подсчет количество по полю mark
Код: sql
1.
SUM(CASE WHEN `date` BETWEEN @start AND @end THEN 1 ELSE 0 END)
...
Рейтинг: 0 / 0
Выборка и суммы нескольких периодов в одном запросе.
    #39708670
Валерий666
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос, он выводит существующую табл. register с группировкой по типу register.themeid суммой количесва вхождений register.themeid в определенном периоде. Мне надо вывести вторую колонку с суммой со второго периода. как подредактировать запрос?


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT *,COUNT(*),[color=red]COUNT(*)[/color],GROUP_CONCAT(execute.exefio ORDER BY execute.exenum SEPARATOR '\n') FROM register 
LEFT JOIN register AS t2 ON register.docid = t2.docid 
LEFT JOIN execute ON register.docid = execute.docid 
WHERE (register.docid<>0)
 AND (register.datecreate between '2018-09-01' AND '2018-09-26')
[color=red] AND (t2.datecreate between '2017-09-01' AND '2017-09-26')[/color]
GROUP BY register.themeid 
ORDER BY register.jeu
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка и суммы нескольких периодов в одном запросе.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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