|
|
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
привет... такая задача... есть таблица Routings ( composite_key text, end_address text )... end_address - конечная точка маршрута... composite_key - первичный ключ таблицы... начальной точкой маршрута является предыдущее значение end_address ( из предыдущей строки )... какой запрос нужно составить, чтобы получить таблицу со значениями начальной и конечной точки в одной строке? я пробовал так : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. но появляется ошибка : 'Ошибка синтаксиса в выражении запроса : f2.composite_key = ( select max( f3.composite_key ) from Routings f3 where f3.composite_key < f.composite_key )' что тут может быть не так???!... в SQL Server такой запрос работает отлично... заранее благодарю за помощь... лучше побыть дураком 15 мин., чем остаться им на всю жизнь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 12:36 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. Смущает только, что ключ текстовый... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:12 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
в силу некоторых причин, ключ является текстовым ( он составляется из нескольких столбцов, включая текстовые )... если бы ключ ( composite_key ) был простым автоинкрементом, то прошел бы такой запрос : Код: plaintext 1. 2. 3. 4. 5. 6. но к сожалению такого у меня нет...(( 2VIG на Ваш запрос рагается акес... лучше побыть дураком 15 мин., чем остаться им на всю жизнь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:29 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
комбинацию Код: plaintext можно заменить на Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:38 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
Sorry, так правильно Код: plaintext 1. 2. 3. 4. но к сожалению такого у меня нет. так сделай,иначе это вряд ли будет работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 14:55 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. такая же ошибка как и в первом запросе...( я тут прочитал, что можно сделать еще вот так : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. но такая конструкция "тормозит по черному" ( всего 200 записей в таблице )... если несколько записей, то нормально... люди помогите!... лучше побыть дураком 15 мин., чем остаться им на всю жизнь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 15:00 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
2VIG спасибо, запрос заработал... но только чего-то там не то что нужно... так сделай,иначе это вряд ли будет работать с этим проблемс... если я в таблицу добавлю столбец с автоинкрементом, то потом можно запросто получить не корректные результаты... ситуация такая : в таблицу записываются поездки машины каждый день... строго говоря, для регистрации подобных событий нужна таблица примерно следующей структуры id int ( autoincrement ) date date - дата поездки car_name text - машина end_address text - конечная точка ( куда )... так же является начальной точкой для следующей строки дело в том, что машина может ездить в несколько мест за день и если в будущем будет добавлена запись о поездке с датой меньше чем последняя дата в таблице, то инкремент у этой записи будет больше чем у последней даты! ситуация осложняется еще тем, что может быть несколько разных машин... в общем, получаться не корректные результаты... собственно, для этого я и применяю composite_key ( car_name, date, id )... я вот чего подумал, а в акесе можно результаты запроса залить во временную таблицу?... с добавлением поля автоинкремента?!... лучше побыть дураком 15 мин., чем остаться им на всю жизнь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 15:32 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
я вот чего подумал, а в акесе можно результаты запроса залить во временную таблицу?... с добавлением поля автоинкремента?!... Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 17:50 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
зайди на microsoft поищи и скачай QRYSMP97.exe - там есть 4 примера получения данных предыдущей/следующез записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2004, 18:05 |
|
||
|
запрос - предыдущая строка...
|
|||
|---|---|---|---|
|
#18+
2VIG спасибо!... я Ваш предыдущий запрос немного подправил и получилось почти то, что было нужно... сейчас два запроса приходится использовать, но все-таки работает как нужно... Код: plaintext 1. 2. 3. 4. 5. 6. 7. сохраняю это как отдельный запрос, а потом делаю соединение по этим двум ключам... в общем, получается связь many-to-many... про временные таблицы... я просто в основном работаю на T-SQL и работа в акесе не совсем привычна... если бы БД была на MSSQL, то я бы примерно, так сделал : создал хранимую процедуру и создал бы там временную таблицу, а далее уже результирующий запрос, который напраляется клиенту ( сводная таблица Excel )... а вот как ( и можно ли ) это сделать в акесе?... т.е. что-то вроде пакета инструкций sql, который возвращает таблицу!?... 2Alexus12 зайди на microsoft поищи и скачай QRYSMP97.exe спасибо... скачал эти примеры, посмотрел... они спасают в случае, если первичный ключ является инкрементом... но спасибо, все равно... лучше побыть дураком 15 мин., чем остаться им на всю жизнь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32398914&tid=1676829]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 488ms |

| 0 / 0 |
