Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с запросом [D5, dBase, FoxPro]


werr ©   (2002-10-11 12:22:00) 

Запрос:
DELETE from Table t1 where 1<(select count(*) FROM Table t2 where t1.field1 = t2.field1 and t1.field1 = t2.field1)
(LocalSQL)
Запрос удаляет повторяющиеся записи из Table, оставляя одну из них (Подсказали его добрые люди с этого форума).
Если все поля заполнены, ты запрос работает как надо, но если, например, поле field2 в какой-то строке не заполнено, то эта строка не удаляется.
Как сделать чтобы повтряющиеся строки и с незаполненными полями тоже удалялись?
Пол дня мучаюсь, никак не получается сделать, help!


Johnmen   (2002-10-11 15:50:00) [1]

По другому - только полным пересмотром концепции структуры твоей БД... :))))


werr   (2002-10-11 15:43:00) [2]

ясно, но полей у меня штук 20
может можно по-другому?


Johnmen   (2002-10-11 14:50:00) [3]

DELETE from Table t1
where (1<(select count(*) FROM Table t2 where t1.field1
=t2.field1 and t1.field2 = t2.field2)) or
((t1.field1 is null) and (t2.field1 is null) and
(t1.field2 = t2.field2)) or
((t1.field2 is null) and (t2.field2 is null) and
(t1.field1 = t2.field1))


passm   (2002-10-11 14:48:00) [4]

... WHERE (T1.FIELD1 = T2.FIELD1 OR (T1.FIELD1 IS NULL AND T2.FIELD1 IS NULL)) AND (T1.FIELD2 = T2.FIELD2 OR (T1.FIELD1 IS NULL AND T2.FIELD2 IS NULL))...


werr   (2002-10-11 14:42:00) [5]

ау, help!


werr   (2002-10-11 12:36:00) [6]

если добавить в WHERE условие незаполненности то незаплненные как раз и не будут удаляться, а надо наоборот



Johnmen   (2002-10-11 12:26:00) [7]

Так добавь в WHERE условие незаполненности...


Наверх

Титульная страница Поиск, карта сайта Написать письмо