Запрос по периоду дат!

mahoune

Guest
Запрос по периоду дат!

Меня что-то глючит!
Есть запрос, в котором я использую параметр, что-б вывести данные из разных таблиц на определенный день! Скажем такой
SELECT u_name FROM my_table WHERE u_last_login='10/10/2002'

Мне приходится вызывать его на каждый день по одному разу!
Если не делать WHERE запрос выдаст ВСЕ дни, но если на какой-то день записи нет - то на этот день естессно ничего не выдаст :( А мне надо что-б он писал пустую строку. Можно конечно создать табличку, в которой описать все дни на несколько лет и дела LEFT JOIN но это как-то некрасиво! :( Как быть?

Входные данные:
my_table
| u_name | u_last_login |
+-----------+----------------+
|_petrov_ | 10/10/2002 |
|_petrov_ | 11/10/2002 |
|_petrov_ | 13/10/2002 |

Надо получить
| u_name | u_last_login |
+-----------+----------------+
|_petrov_ | 10/10/2002 |
|_petrov_ | 11/10/2002 |
|_______ | 12/10/2002 |
|_petrov_ | 13/10/2002 |
 

mahoune

Guest
В каком смысле правильным ?! Говорю-же это пример! Как на самом деле, тоже можно переправить! Но это-же ничего не даст или я опять в танке!
 

chira

Новичок
делаешь фиктавную таблицу с одной строкой

CREATE TABLE dual (d TINYINT)
INSERT INTO dual (d) VALUES ('0')

SELECT a1.*,'2002-02-09' dt FROM dual LEFT JOIN my_table.a1 ON a1.u_last_login = '2002-02-09'

конечно все записи с непрерывным списком дат ты не получишь, но для твоего селекта это будет работать.
 

mahoune

Guest
Автор оригинала: chira
делаешь фиктавную таблицу с одной строкой

CREATE TABLE dual (d TINYINT)
INSERT INTO dual (d) VALUES ('0')

SELECT a1.*,'2002-02-09' dt FROM dual LEFT JOIN my_table.a1 ON a1.u_last_login = '2002-02-09'

Сейчас попробую!

конечно все записи с непрерывным списком дат ты не получишь, но для твоего селекта это будет работать.
Это жалко... :( Хотя и следовало ижидать :)
 

chira

Новичок
Еще можешь попробовать чего-то сделать используя серверные переменные, это уже особенности MySQL.
 

ForJest

- свежая кровь
Нельзя этого никак сделать на мускуле. Да и не нужно. Просто результат запроса потом обработай - не ленись. Ведь несложно сделать один цикл от первого числа месяца до последнего.
Основная идея - если есть запись для этого числа месяца то выводишь её и берешь следующую запись. Если нет - выводишь --------.
That all folks.
 

mahoune

Guest
Да это понятно! Просто вопрос, честно говоря был исключительно по SQL потому как все это надо реализовать в Access и вывести Report но обработку предварительную там делать гиморно ибо потом неясно, что подсовывать в Report так как он хорошо работает только со стандартными запросами, а с остальнми DataSource у него беде!
 
Сверху