Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / можно ли организовать цикл в sql запросе? / 20 сообщений из 20, страница 1 из 1
05.08.2004, 12:52:05
    #32636665
можно ли организовать цикл в sql запросе?
что бы он сравнивал последующую и предыдущую строки. и удалял одинаковые.
...
Рейтинг: 0 / 0
05.08.2004, 13:05:03
    #32636699
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
цикл можно организовать в VBA (или VB)
...
Рейтинг: 0 / 0
05.08.2004, 13:29:16
    #32636762
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
убитый accessomчто бы он сравнивал последующую и предыдущую строки. и удалял одинаковые.

Есть слегка другая вещь: DISTINCT.
Синтаксис примерно такой:
Код: plaintext
SELECT DISTINCT first_name, last_name FROM tbl_users

Что он делает - удаляет из результата все повторяющиеся строки.
Т.е. если в таблице "tbl_users" 10 записей с именем и фамилией "Василий Чапаев", то вернется только одна.
Сравнение идет по всем возвращаемым колонкам.
...
Рейтинг: 0 / 0
05.08.2004, 13:40:00
    #32636789
YBW
YBW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
Bely убитый accessomчто бы он сравнивал последующую и предыдущую строки. и удалял одинаковые.

Что он делает - удаляет из результата.

он не отображает повторяющиеся (идентичные) - а не удаляет... вопрос ставился иначе...

Убитый Access'oм - ИМХО Access тут совершенно не виноват...

сформулируй вопрос корректнее -

тебе действительно нужно удалить повторяющиеся записи, или только если повторяющиеся идут последовательно друг за другом...

тебе действительно нужно удалить обе - и последующую (х+1) и предыдущую (х) записи или только одну из них???

как должен выполняться запрос (действия) если поменяется сортинг записией в запросе?
...
Рейтинг: 0 / 0
05.08.2004, 14:01:02
    #32636851
можно ли организовать цикл в sql запросе?
мне надо удалить одну запись, х, а х+1 оставить. записи отсортированы. но проблема в том, что строка может совпасть по столбику "имя" а по столбику "действие" не совпасть, такие строки удалять не надо.
...
Рейтинг: 0 / 0
05.08.2004, 14:10:21
    #32636875
можно ли организовать цикл в sql запросе?
sasha_1
посоветуй что-нибудь по vb(желательно в электронном виде), а то я о нем только слышал, и даже не представляю себе, что это такое, а делать надо.
...
Рейтинг: 0 / 0
05.08.2004, 14:39:53
    #32636971
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
все тот же убитыймне надо удалить одну запись, х, а х+1 оставить. записи отсортированы. но проблема в том, что строка может совпасть по столбику "имя" а по столбику "действие" не совпасть, такие строки удалять не надо.

Что-то мне подсказывает, что надо ввести ключевое поле (например "ID"), сделать его Counter-ом (Счетчиком) и удалять по значению этого поля, а не сравнивая имена :).

Код: plaintext
DELTE FROM my_table WHERE id =  13 
...
Рейтинг: 0 / 0
05.08.2004, 14:42:57
    #32636983
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
все тот же убитыймне надо удалить одну запись, х, а х+1 оставить. записи отсортированы. но проблема в том, что строка может совпасть по столбику "имя" а по столбику "действие" не совпасть, такие строки удалять не надо.

В этом случае надо указать в условии на удаление все поля, которые однозначно определяют удаляемую запись.
Например строка SQL запроса можеь выглядеть так:

Код: plaintext
1.
DELETE FROM my_tbl
WHERE name = 'Василий' AND action = 'уволить'
...
Рейтинг: 0 / 0
05.08.2004, 14:52:01
    #32637014
YBW
YBW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
убитый accessomsasha_1
посоветуй что-нибудь по vb(желательно в электронном виде), а то я о нем только слышал, и даже не представляю себе, что это такое, а делать надо.


у Андрея Митина на ам.русимпорт лежит ссылка на Кена Хендерсона с примерами


http://am.rusimport.ru/msaccess/topic.aspx?ID=278
...
Рейтинг: 0 / 0
05.08.2004, 15:29:47
    #32637152
можно ли организовать цикл в sql запросе?
2 YBW: вот спасибо! =)
...
Рейтинг: 0 / 0
05.08.2004, 19:02:25
    #32637563
vvb152
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
пишешь на вб самопальную функцию as boolean, в которую аргументами передаёшь значения полей, которые нужно отслеживать на предмет повторения.
function повтор_мля(id) as boolean
static a
if a <> id then a=id:Exit Function
повтор_мля=-1
end function
выдает функция -1, значит повтор. вот по этому полю и удаляй запросом на удаление.
...
Рейтинг: 0 / 0
05.08.2004, 19:06:28
    #32637570
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
vvb152пишешь на вб самопальную функцию as boolean, в которую аргументами передаёшь значения полей, которые нужно отслеживать на предмет повторения.
function повтор_мля(id) as boolean
static a
if a <> id then a=id:Exit Function
повтор_мля=-1
end function
выдает функция -1, значит повтор. вот по этому полю и удаляй запросом на удаление.
Только надо сделать order by по этому полю, иначе не сработает.
...
Рейтинг: 0 / 0
05.08.2004, 19:31:14
    #32637602
vvb152
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
Владимир СанычТолько надо сделать order by по этому полю, иначе не сработает.
хорошо напомнил - в этом суть проблемы с такими функциями: акцессу по барабану сортировка, указанная в запросе, он лезет в базовые таблицы и берёт сортировку оттуда. в результате может получиться полная хрень. в запросе на выборку я для нормальной работы таких функций после select вставляю distinctrow - запрос отрывается от базовых таблиц, и срабатывает сортировка запроса. а вот вставлять distinctrow в запрос на удаление думаю нелогично. или сработает? слаб я в sql...
...
Рейтинг: 0 / 0
05.08.2004, 19:41:00
    #32637613
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
vvb152в запросе на выборку я для нормальной работы таких функций после select вставляю distinctrow - запрос отрывается от базовых таблиц, и срабатывает сортировка запроса.
Я о таком эффекте не задумывался. Но боюсь, что от distinctrow возможен нежелательный эффект - часть записей (именно повторяющихся, что особенно неприятно для данной задачи) будет пропущена.

vvb152а вот вставлять distinctrow в запрос на удаление думаю нелогично. или сработает? слаб я в sql...
Мне кажется, что не вызовет проблем такой вариант:

delete * from ...
where ... in (select distinctrow ...
...
Рейтинг: 0 / 0
05.08.2004, 19:53:40
    #32637634
vvb152
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
Владимир СанычНо боюсь, что от distinctrow возможен нежелательный эффект - часть записей (именно повторяющихся, что особенно неприятно для данной задачи) будет пропущена.

при наличии в таблице счётчика за это можно не бояться
...
Рейтинг: 0 / 0
05.08.2004, 19:54:45
    #32637636
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
Да, согласен.
...
Рейтинг: 0 / 0
05.08.2004, 21:36:35
    #32637705
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
Код: plaintext
1.
2.
3.
4.
5.
delete  t.*
from  t
where t.id not  in
(select min(id)  from t
group by f1,f2) 
...
Рейтинг: 0 / 0
05.08.2004, 21:45:50
    #32637715
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
а как сильно отличается sql аксессный от mssmql ?
на msslq такую фишку замутить не проблема ...


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
05.08.2004, 21:58:30
    #32637721
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
Автору топика: решение VIG'а - лучшее во всех отношениях. Если id - это уникальное поле.
...
Рейтинг: 0 / 0
05.08.2004, 22:45:40
    #32637761
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли организовать цикл в sql запросе?
2 В.С
Спасибо :)
2 Jib Skeart
Сильно ,и как правило ,не в лучшую сторону (:
Но и на Аксесе "такое замутить не проблема"
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / можно ли организовать цикл в sql запросе? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]