powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать даты с интервалом в день
9 сообщений из 9, страница 1 из 1
Выбрать даты с интервалом в день
    #38478948
headzero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно выбрать данные и сгруппировать по датам, причем интервал должен быть в один день.
Допустим в таблице с двумя колонками |date |value| :
|2013-07-21 |239 |
|2013-08-20 |87 |

Мне нужно сгрупировать выборку по датам,тоесть что бы в выборке было не 2 результата, а все в интервале 2013-07-21 - 2013-08-20с интервалом в день, тоесть для 2013-07-21, 2013-07-22, 2013-07-23 ... 2013-08-20.

Помогите пожайлуста, как это сделать
...
Рейтинг: 0 / 0
Выбрать даты с интервалом в день
    #38479123
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
headzeroкак это сделать
...запрос, наверна, нада написать ...
...
Рейтинг: 0 / 0
Выбрать даты с интервалом в день
    #38479273
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
headzeroчто бы в выборке былоИ дальше надо показать (тег [ csv ] в помощь), что именно должно быть в результате. Потому что вот я, например, не понял, как он, результат, должен выглядеть.
...
Рейтинг: 0 / 0
Выбрать даты с интервалом в день
    #38479510
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
headzero,

опорная таблица дат нужна
...
Рейтинг: 0 / 0
Выбрать даты с интервалом в день
    #38479756
headzero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
artas,
Вот таблица values (для примера)
datevalue2013-07-21 2392013-08-20 87

Идет выборка по двум датам, начальной и конечной.

Код: sql
1.
 SELECT SUM(value) FROM values where date >='startDate' AND date<='endDate' GROUP BY date 



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

Например, если я выбираю из таблици values(которая приведена выше) и startDate = 2013-07-21, endDate=2013-08-20, то в результе я хочу получить такую таблицу:

dateSUM(value)2013-07-21 2392013-07-22 02013-07-23 0............2013-08-19 02013-08-20 87
...
Рейтинг: 0 / 0
Выбрать даты с интервалом в день
    #38479820
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
headzero,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
<...>
from (
 таблица_со_всеми_нужными_датами
) t0
left join (
 ваш_запрос
) t1 on t0.дата=t1.дата
<...>

Таблицу с датами можно сгенерить заранее.
...
Рейтинг: 0 / 0
Выбрать даты с интервалом в день
    #38480156
headzero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,
Спасибо. А как сгенерить эти даты?
...
Рейтинг: 0 / 0
Выбрать даты с интервалом в день
    #38480314
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Выбрать даты с интервалом в день
    #38480342
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
headzero,

дато такую процедуру написали

Код: 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.
CREATE PROCEDURE `proc_temp_calendar`(
        IN begin_date DATE,
        IN end_date DATE
    )
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
    
    SET @last_date = begin_date;
    
    DROP TABLE IF EXISTS temp_calendar;
    
    CREATE TEMPORARY TABLE temp_calendar(
           date DATE NOT NULL,
           KEY days (date)
    ) ENGINE = MyIsam;
    
    WHILE @last_date <= end_date DO
       insert into temp_calendar(date) values(@last_date);
       SET @last_date = DATE_ADD(@last_date, interval 1 day);
    END WHILE;
  
END;


думаю разберешся как вызывать
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать даты с интервалом в день
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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