![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
![]()
Добрый день вторые сутки мучаюсь составить следующий запрос.
Есть таблица следующего вида : cId cDate cIdTovat 1 2010-01-01 1 1 2010-01-02 1 1 2010-01-03 2 1 2010-01-04 1 1 2010-01-05 2 Где cDate - это дата на которую будет выставлен товар, cIdTovar - соответственно id- товара Нужно получить результат следующего вида для товара 1: 2010-01-01 по 2010-01-02, 2010-01-04 Подскажите как это можно сделать, очень нужно. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ничего не утверждаю, но попробуйте такой запрос:
Код:
МОЖЕТЕ НЕ ПРОБОВАТЬ! ![]() я проглядел, что Вам даты нужны без пропусков собирать в диапазоны, а даты с пропусками писать через запятую... Я такое только через ХП (или код на клиенте) умею делать.. а в SQL — мне такое сделать слабо... ![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
![]()
Я полностью согласен с вами Сергей , что на чистом SQL - запросе не сделать. А как ХП делать в MYSQL понятия не имею.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
![]()
А если таблица будет исключительно содержать вот такие последовательности ?
cId cDate cIdTovat 1 2010-01-01 1 2 2010-01-02 1 3 2010-01-04 1 4 2010-01-05 1 |
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
в любом случае при решении нужно сортировать (или даже отбирать) по товарам, а внутри сортировать по датам... Цитата:
но, судя по всему, это возможно... вот, посмотрите через поиск на Гугле - результаты поиска а Вы клиентскую часть на чём пишете? Может на клиенте подобное решение написать? |
||
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
![]()
Да стандрат серверную- PHP, клиент JS (были мысли написать на JS какую то функцию, ну что то меня отталкивает)
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
![]() Код:
Собственно код разбивается на две части 1 часть(находим границы максимума) Код:
Код:
Есть какие нибудь предложения по поводу ключей ? И может у кого-то есть мысли по поводу оптимизации кода, самое существенное это как то минимизировать следующий код Код:
1 2010-01-01 1 2 2010-01-02 1 3 2010-01-04 1 4 2010-01-05 1 ИЗ 1 2010-01-01 1 1 2010-01-02 1 1 2010-01-03 2 1 2010-01-04 1 1 2010-01-05 2 Видимо как всегда придётся додумывать всё самому, и делать из невозможного возможное ... эх. Последний раз редактировалось slips; 05.06.2010 в 19:45. Причина: редактирование |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 28.10.2008
Сообщений: 350
|
![]()
Немного упрощённый
![]() Код:
в таблице это в таком виде cId cDate cIdTovat 1 2010-01-01 1 2 2010-01-02 1 3 2010-01-03 1 . ... 10 2010-01-07 1 11 2010-01-08 1 РЕЗУЛЬТАТ ВЫБОРКИ: row_number StartDate EndDate 1 2010-01-01 2010-01-03 2 2010-01-07 2010-01-08 Последний раз редактировалось slips; 06.06.2010 в 01:30. Причина: редактирование |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SQL запрос для строк! | Milishka | БД в Delphi | 8 | 21.04.2010 13:23 |
НАдо сделать запрос на SQL для MS Access! | Artanis | SQL, базы данных | 9 | 05.11.2009 15:03 |
SQL запрос для поиска в связаных таблицах. | Хитрец | БД в Delphi | 12 | 18.04.2009 14:46 |
Как организовать поиск интервала дат через SQL | Selena | Общие вопросы Delphi | 1 | 14.03.2007 01:25 |
SOL-запрос интервала даты и времени в Delphi | DENIS_ | БД в Delphi | 5 | 23.12.2006 12:55 |