|
почему так
|
|||
---|---|---|---|
#18+
если набираю select recno() from x, то получаю номера записей, если набираю select recno("x") from x, то получаю один номер записи, на котором стоит курсор ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 11:55 |
|
почему так
|
|||
---|---|---|---|
#18+
Не_проходи_мимо, потому что таблица Х открытая в Select-SQL и та же таблица Х, но открытая в среде Фокса, - это "две большие разницы"... Recno() - работает с текущей рабочей областью, а RECNO("X") - работает с рабочей областью, в которой таблица имеет алиас "Х". Далеко не факт, что Select-SQL "выдаст" таблице Х алиас "Х"... Особенно, если такая таблица уже открыта в Фоксе... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 12:09 |
|
почему так
|
|||
---|---|---|---|
#18+
Но тогда, как мне сделать запрос(группировка отсутствует), чтоб при выборке показывались номера записей указанного алиаса, если запрос сложный с Join, то там везде надо указывать в полях алиас... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 12:47 |
|
почему так
|
|||
---|---|---|---|
#18+
Не_проходи_мимоНо тогда, как мне сделать запрос(группировка отсутствует), чтоб при выборке показывались номера записей указанного алиаса, если запрос сложный с Join, то там везде надо указывать в полях алиас... Зачем Вам номера записей из таблиц, да еще и связанных по JOIN ?! :-0 Как правило, в 99,9999% случаев без всего этого можно обойтись.... Я почему-то не уверен, что Ваша задача попадает в оставшиеся 0,0001% :-) Опишите Вашу задачу. Возможно есть другие, более простые пути ее решения... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 12:54 |
|
почему так
|
|||
---|---|---|---|
#18+
Это тяжёлый случай, поэтому описывать долго и в конечном итоге может только запутать ситуацию(выбираются записи с номерами записей во временную таблицу, потом делаются изменения и по номеру этой записи отыскивается в основной и производится изменения, почему не View, не КАД.., есть то, что есть)...поэтому для упрощения это должно выглядеть так select t1.kod,t1.kol,,NVL(t2.naim, SPACE(20)) as naim,recno("t1") as rec_t1,recno("t2") as rec_t2 FROM t1 left JOIN t2 ON t1.kod = t2.kod ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 13:17 |
|
почему так
|
|||
---|---|---|---|
#18+
Не_проходи_мимоЭто тяжёлый случай, поэтому описывать долго и в конечном итоге может только запутать ситуацию(выбираются записи с номерами записей во временную таблицу, потом делаются изменения и по номеру этой записи отыскивается в основной и производится изменения, почему не View, не КАД.., есть то, что есть)...поэтому для упрощения это должно выглядеть так select t1.kod,t1.kol,,NVL(t2.naim, SPACE(20)) as naim,recno("t1") as rec_t1,recno("t2") as rec_t2 FROM t1 left JOIN t2 ON t1.kod = t2.kod Вобщем-то без промежуточных запросов данная задача не решается. Можно еще завести себе полюшко для временного суррогатного ключа на базе RECNO() в T1 и в T2. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 13:22 |
|
почему так
|
|||
---|---|---|---|
#18+
Не_проходи_мимо, Вы описали Ваш путь решения Вашей проблемы, а не саму проблему... Возможно, Ваш путь ведет к поставленной цели... Но, возможно также, что он не является единственно верным... И, возможно, альтернативные пути будут содержать меньше "подводных" камней, чем предложенный Вами... Еще раз предлагаю Вам описать суть Вашей задачи. Если получится, то "на пальцах"... То есть, примерно так: есть таблица №1, в ней такие-то данные; есть таблица №2, в ней такие-то данные; надо сделать то-то и то-то + приложить тестовый набор данных Возможно, здесь одним только "чистым" SQL не обойдешься... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 13:35 |
|
почему так
|
|||
---|---|---|---|
#18+
Не_проходи_мимоЭто тяжёлый случай, поэтому описывать долго и в конечном итоге может только запутать ситуацию(выбираются записи с номерами записей во временную таблицу, потом делаются изменения и по номеру этой записи отыскивается в основной и производится изменения, почему не View, не КАД.., есть то, что есть)...поэтому для упрощения это должно выглядеть так Код: plaintext
Еще раз посмотрел на запрос и рекомендации Kruchinin Pahan... Если Ваш диалект SQL поддерживает в качестве источника данных подзапросы, то можно, наверное, сделать так: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 13:41 |
|
почему так
|
|||
---|---|---|---|
#18+
Не_проходи_мимо(выбираются записи с номерами записей во временную таблицу, потом делаются изменения и по номеру этой записи отыскивается в основной и производится изменения, Вот в чем проблема, и от чего нужно избавиться. Ищите не по номеру записи а по ключевому полю- судя по вашим примерам это kod. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2009, 14:32 |
|
почему так
|
|||
---|---|---|---|
#18+
Спасибо за ответы...там изначально так заложено, что нет уникального ключа, правда есть составной, код документа+код поставщика, но это значит надо создать индекс, и когда сбрасываются записи постоянно пользоваться поиском (seek(код документа+код поставщика)), а это я думаю дольше, чем просто (go номер записи; replace kol), наверное поэтому и написали в выборке заполнение номеров записей..., поэтому скорей всего я воспользуюсь предложенным select(ом) Станислава.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2009, 06:20 |
|
|
start [/forum/topic.php?desktop=1&fid=41&tid=1586722]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 161ms |
0 / 0 |