|
|
|
Снова про поиск ближайшей даты
|
|||
|---|---|---|---|
|
#18+
Камрады, не могу найти ответ на такую проблему (VFP OLEDB): есть таблица "Документы" (docs) date - doc 01.01.2006 АБЦ 02.01.2006 БЦД 05.01.2006 ЦДЕ и есть таблица "Курсы валют" (rates): date - rate 01.01.2006 135 04.01.2006 138 нужно создать новую таблицу final: date - doc - rate 01.01.2006 АБЦ 135 02.01.2006 БЦД 135 // берет предшествующую дату, если нет точно такой же 05.01.2006 ЦДЕ 138 // берет предшествующую дату, если нет точно такой же Как правильно написать запрос? У меня выходит что-то вроде вот этого: SELECT docs.date, docs.doc, rates.rate FROM docs LEFT OUTER JOIN rates ON docs.date = (SELECT MAX(rates.date) FROM rates WHERE date < docs.date) ********************************* Но, понятно, не работает. Буду очень признателен за подсказку! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2006, 16:26 |
|
||
|
Снова про поиск ближайшей даты
|
|||
|---|---|---|---|
|
#18+
Вот здесь посмотри Выбрать из дочерней таблицы записи с максимальной датой Логика та же, только в подзапрос, который в IN надо будет добавить условие WHERE date < docs.date ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 00:38 |
|
||
|
Снова про поиск ближайшей даты
|
|||
|---|---|---|---|
|
#18+
ВладимирМВот здесь посмотри Выбрать из дочерней таблицы записи с максимальной датой Логика та же, только в подзапрос, который в IN надо будет добавить условие WHERE date < docs.date попробовал. облом. пишу ему: SELECT * from docs LEFT JOIN rates ON docs.dt = rates.dt WHERE rates.dt IN (select MAX(dt) FROM rates WHERE dt < docs.dt) он отвечает: Queries of this type are not supported. И проблема, судя по всему - в последнем docs.dt. Туда, во вложенный селект, его вставлять нельзя. Для проверки попробовал поставить не docs.dt, а конкретную дату - работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 14:25 |
|
||
|
Снова про поиск ближайшей даты
|
|||
|---|---|---|---|
|
#18+
Попробуй так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Правда, подобный запрос поддерживается только в VFP9. Если у тебя драйвер OLE DB младшей версии, то опять будет сообщение "Queries of this type are not supported" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2006, 20:19 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=260&tid=1591796]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 375ms |

| 0 / 0 |
