|
|
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
Имеется две таблицы цен на товары: Таблица `default_price`, содержащая два столбца: идентификатор товара и цена по-умолчанию: id price 10 3000 34 5000 53 5000 Таблица `day_price`, содержащая три столбца: идентификатор товара, дата, особая цена на дату: id price date 53 3500 01.10.2014 53 5500 05.10.2014 53 1500 09.10.2014 53 2500 10.10.2014 53 2500 11.10.2014 53 2500 12.10.2014 10 3500 02.10.2014 Необходимо, чтобы SQL-запрос по заданному идентификатору товара (например = 53) и датам начала и конца периода (например с 01 по 10.10.2012), возвращал таблицу следующего вида: date price price_type 01.10.2014 3500 особая цена 02.10.2014 5000 цена по-умолчанию 03.10.2014 5000 цена по-умолчанию 04.10.2014 5000 цена по-умолчанию 05.10.2014 5500 особая цена 06.10.2014 5000 цена по-умолчанию 07.10.2014 5000 цена по-умолчанию 08.10.2014 5000 цена по-умолчанию 09.10.2014 1500 особая цена 10.10.2014 2500 особая цена То есть для каждой даты из периода выбирал либо цену по-умолчанию, если на заданный день нет особой цены, либо особую цену, если таковая имеется, с указанием соответствующего источника цены для каждого дня. вот этот вариант не подходит: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ошибка в том, что в таблице результата, дата берется из интервала BETWEEN '2014-10-01' AND '2014-10-20' с шагом 1 день. Как это сделать ума не прилажу. Хотя бы куда копать пните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 15:51 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
В обеих таблицах список товаров идентичен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 17:36 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
nrmBeginner, нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 17:43 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
точнее в условии ничего не сказано про идентичность, выделена только связь между таблицами по id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 17:47 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
задача прояснилась, создаем временную таблицу: Код: 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. теперь другая проблема, как ее прилепить (JOIN) в запросе, ругается что такой таблице в БД нет... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 19:52 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
проблема решена: Код: 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. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 23:08 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
ud_aw, сделайте нормальную, не временную таблицу она вам ещё много раз пригодится, зачем зря сервер напрягать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 03:40 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
ud_aw, Писец, на кой черт столько ненужного для такой элементарной задачи? Вот: Код: sql 1. 2. 3. 4. 5. 6. 7. Если что, вот исходные данные: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2016, 16:55 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
nrmBeginner, а теперь внимательно читаем условие исходной задачи, конкретнее - что именно надо получить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 07:05 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
tanglir, Если ты узрел какой-то тайный смысл между строк то не ленись поделиться. Иначе треп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2016, 18:58 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
nrmBeginner, нет там никакого тайного смысла, и между строк читать необязательно. Достаточно посмотреть на желаемый результат. высё ещё не дошло? твой запрос выдаёт совершенно не то, чего хочет ТС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 05:07 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
насчёт опорной таблицы дат... не уверен что она нужна. причина - мы берём таблицу опорную за основу - тоесть её читаем целиком, а по индексам уже на поля даты лепим остальные. остаётся вопрос, откуда брать таблицу опорную, с винчестера, или генерировать на лету. второе наверно побыстрее будет. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 09:14 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, извините, не обратил внимание. /* Affected rows: 0 Знайдено записів: 390 625 Попередження: 0 Тривалість 1 query: 0,015 sec. (+ 0,967 sec. network) */ /* Affected rows: 0 Найдено записей: 390 625 Предупреждений: 0 Продолжительность 1 query: 0,015 sec. (+ 0,967 sec. network) */ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 09:16 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
390к опорных дней думаю любому хватит :) этож более 1000 лет :) а считывать опорную из файла... точно в 15 милисикунд не уложится. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 09:21 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. это правильный запрос с датами, тот что выше 200 милисекунд выполняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 09:23 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
alex564657498765453а считывать опорную из файла... точно в 15 милисикунд не уложится.Ну какбэ кэш никто пока не отменил. Разницы по скорости с созданием на лету не будет никакой, зато не придётся вкорячивать в запросы эту монструозину с кучей юнионов. Дело вкуса по сути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 11:15 |
|
||
|
помогите пожалуйста с запросом
|
|||
|---|---|---|---|
|
#18+
tanglir, да, но с практической точки зрения, если отчёт за 90 дней. то врядли подобный запрос частый...в кеше ничего хранится не будет. а если и кешировать, то уже сам ответ сервера клиенту(сервиса а не бд) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2016, 13:18 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=95&tid=1831523]: |
0ms |
get settings: |
11ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 434ms |

| 0 / 0 |
