Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не могу переделать запрос / 8 сообщений из 8, страница 1 из 1
01.12.2017, 08:15
    #39562332
Error202
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу переделать запрос
Здравствуйте!

не могу переделать запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
	dt.tdate, count(deals.id) as count 
FROM `deals` 
RIGHT JOIN `date_template` `dt` 
	ON (FROM_UNIXTIME(deals.created_at, '%Y-%m-%d') = dt.tdate 
		AND 
		deals.status=100) 
WHERE (dt.tdate >= FROM_UNIXTIME(1477976440, '%Y-%m-%d')) 
	AND (dt.tdate <= FROM_UNIXTIME(1480568440, '%Y-%m-%d')) 
GROUP BY `dt`.`tdate` 
ORDER BY `dt`.`tdate`



Есть база: date-template с полями id, tdate - это просто список дат на 30 лет
Есть база сделок: deals, с полями id, created_at, status

По указанному запросу для графика подбираются все сделки со статусом 100, с количеством по датам.

Появилась задача сделать запрос, который бы выводил все сделки с количеством по датам, но группированные еще и по статусу.
Сам статус также нужно вынести в SELECT

Основная проблема в том, что сейчас выводятся весь промежуток дат, даже если есть count = 0
Если убрать условие status = 100, и добавить status в GROUP BY, то выборка идет, но пропадают нулевые значения count...

Куда копать, не подскажите?
...
Рейтинг: 0 / 0
01.12.2017, 09:11
    #39562358
paver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу переделать запрос
Error202,
я бы dt.tdate BETWEEN ... перенес в ON, deals.status - в WHERE, ORDER BY - убрал.
...
Рейтинг: 0 / 0
01.12.2017, 09:16
    #39562362
paver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу переделать запрос
Error202сейчас выводятся весь промежуток дат, даже если есть count = 0
Если ... , то выборка идет, но пропадают нулевые значения count...

Так вам нужны нулевые count, или нет?
...
Рейтинг: 0 / 0
01.12.2017, 11:22
    #39562445
Error202
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу переделать запрос
Да, нужны... График нужно построить с несколькими ломанными по дням, но вот как-раз дни не должны выпадать... Там должны быть просто нули...
...
Рейтинг: 0 / 0
01.12.2017, 11:28
    #39562450
Error202
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу переделать запрос
paver,

Так у меня и из первого нули выпадают...
status во where не дает им показаться
...
Рейтинг: 0 / 0
01.12.2017, 11:40
    #39562459
Error202
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу переделать запрос
Наверное можно сделать join таблицы доступных статусов... Тогда проблема решиться... Но нет такой таблицы и статусы прописаны жестко в системе...

Нельзя ли join сделать не для таблица, а для массива, например?
...
Рейтинг: 0 / 0
01.12.2017, 12:43
    #39562489
Error202
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу переделать запрос
Сделал пока через временную таблицу статусов
...
Рейтинг: 0 / 0
04.12.2017, 08:47
    #39563434
paver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу переделать запрос
Error202,
пример данных и ожидаемый (желаемый) результат
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не могу переделать запрос / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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