Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
условие paycаteg=thisform.pageframe1.page3.txtPaycateg.value-1 и надо найти наибольшее значение ab_code я вот так решил: Код: plaintext 1. 2. ну и первая запись в курсоре - то что я ищу а может еще как-то это умнеее делается? (еще делал вообще Oder by ab_code, который был DESC и тогда loca for paycateg=нужное_значение, ну и первая найденная запись - то что я ищу) блин, наверное можно использовать max()... да, я вот не хотел бы чтобы поиск шел по базе, от которой постороены рилейшны и важна текущая позиция в ней, ее можно, конечно, запомнить по RECNO() и потом к ней вернуться... но с выборкой в курсор этого делать не придеться. Наверное как-то можно выборку одной записи в курсор сделать, посредством МАХ(), ну это ладно, это случай поиска максимального значения а как с поиском где не максимальное значение искать надо, а просто поледнюю запись, удовлетворяющюю условию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 11:34 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
SELECT ab_codes calculate max(ab_code) for paycаteg=thisform.pageframe1.page3.txtPaycateg.value-1 to MyVariable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 11:42 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
select max(ab_code) FROM ab_codes WHERE ; paycаteg=thisform.pageframe1.page3.txtPaycateg.value-1; INTO CURSOR curAb_Codes group BY ab_code ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 11:45 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
есть недостаток у первого способа : MyVariable=0 при отсутвии записей удовлетворяющих условию поиска ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 11:49 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
или пробелу для строки короче эмпти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 11:50 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Hi CTAC-KO! Что значит "последнюю" - физически последнюю в таблице? IMHO это дурной стиль - вот если ты заведёшь какое-то ПОЛЕ (DateTime, или просто счётчик) и на основании его будешь определять что есть "последнее" а что "первое" - тогда совсем другое дело :) Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 00:36 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi CTAC-KO! Что значит "последнюю" - физически последнюю в таблице? IMHO это дурной стиль - вот если ты заведёшь какое-то ПОЛЕ (DateTime, или просто счётчик) и на основании его будешь определять что есть "последнее" а что "первое" - тогда совсем другое дело :) последнюю не физически, а удовлетворяющюю условию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 10:28 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 10:34 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Если поиск не по индексу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 11:49 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
А я у себя в проге использую практически тоже, что написал leaf в своем втором методе: Код: plaintext 1. Select выдает как раз последнюю запись удовлетворяющую условию, а если нужно идентифицировать ее в таблице, то для этого в селекте используется RecNo(): Код: plaintext 1. 2. 3. 4. Работает, должен сказать, замечательно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:01 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Хм... А RECNO() в SELECT это не есть плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:21 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
А почему это может быть плохо? Поделитесь мнением, может я пересмотрю некоторые свои подходы к организации Select'ов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:34 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Непредсказуемость положения указателя при выполнении SELECT'a... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:41 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Указанный выше Селект с использованием RecNo() всегда указывает у отобранной строки именно тот номер строки, который ей соответсвует - в этом отношении ничего непредсказуемого, а для данной конкретной задачи именно это и нужно. Если я не прав - поправьте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 13:55 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Спорить не буду... Но и гарантий правильности отработки такого SELECT'a не вижу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 14:27 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Простой тест, где RecNo является ни тем, что Вы о нем думаете ;) Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 15:16 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
2redrik Вы правы рекно есть зло если в запросе участвует более одной таблицы , но в примере приведенном выше таблица одна и -> нет никакого криминала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 15:59 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Уважаемый, PaulWist, помнится я писал: авторУказанный выше Селект с использованием RecNo() всегда указывает у отобранной строки именно тот номер строки, который ей соответсвует - в этом отношении ничего непредсказуемого, а для данной конкретной задачи именно это и нужно. Ключевым моментом данной фразы являются слова: для данной конкретной задачи . И, естественно, я не говорю о том, что абсолютно везде и всегда можно в селекте использовать RecNo(), естественно, все зависит от задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 16:03 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
kms_ Извините, если невольно обидел, но вот Ваш пост kms_ А я у себя в проге использую практически тоже, что написал leaf в своем втором методе: Код: plaintext 1. Select выдает как раз последнюю запись удовлетворяющую условию, а если нужно идентифицировать ее в таблице, то для этого в селекте используется RecNo(): Теперь тест на Ваш пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. как видим RN не соответствует фактическому RECNO. Или я не очень понял о чем речь, тогда приведите тестовый пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 16:16 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
хотя насчет группировки возможно я и поспешил с постом сам с группировкой не эксперементировал использовать эту функцию разбиваю на несколько запросов побаиваюсь почему-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 16:41 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
PaulWist, приношу свои искренние извинения за то, что морочил вам и не только вам голову После того как убедился в вашей правоте (лепту внес ваш последний пример), откопал свою прогу, где использовал аналогичный запрос, и, к моему удивлению, оказалось, что у меня в таблице есть отдельное поле nRecNo, которое я и юзаю, то есть запрос выглядит так: Код: plaintext 1. Еще раз сорри. В следующий раз постараюсь быть менее категоричным в своих высказываниях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2005, 17:32 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
kms_ Да, ладно, все мы делаем ошибки или неправильные выводы, для этого и нужна конференция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 09:29 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
Спасибо за понимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2005, 09:40 |
|
||
|
Как найти последнюю запись удовлетворяющюю условию
|
|||
|---|---|---|---|
|
#18+
kms_А я у себя в проге использую практически тоже, что написал leaf в своем втором методе: Код: plaintext 1. Select выдает как раз последнюю запись удовлетворяющую условию, а если нужно идентифицировать ее в таблице, то для этого в селекте используется RecNo(): Код: plaintext 1. 2. 3. 4. Работает, должен сказать, замечательно! надо давать в селекте order by <поле по которому задается условие> DESC и первая запись наша, или последняя, если не DESC, group by - убрать, нафига он здесь вообще? Если нужно выполнить условие еще по одному полю, например, когда в одной базе лежат накладные всех складов и надо выяснить № последней (по условию) тогда просто order by поле_ид_склада, поле_№_накладной вот и все. все глюки из-за group by, не указывайте его и все будет пучком! В приведенном примере, где не совпадает рекно как раз проблема в попытке найти записи для группировки, что приводит к позиционированию указателя постоянно в конец, что и видно в результате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2005, 14:07 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32960380&tid=1594607]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 397ms |

| 0 / 0 |
