Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Запрос-удаление в mdb Добавлено: 29.08.05 12:41  

Автор вопроса:  neptoon
База mdb. Имеется большая таблица tablica1, эти поля в ней и указанные значения:
code fio
101101 Иванов Иван
101101 Петров Петр
101102 Сидоров Сидор
... ...
201101 Подберезовик Анна
201101 Дубовик Елена
201102 Подлистная Марина
... ...
Надо удалить строки по коду значения 101101 и т.д. (запрос можно из access), пишу:
delete * from tablica1
where code='101101' or '201101'or '...';
Оказалось для кода присвоено несколько человек и само собой удаляет их всех.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 neptoon



Вопросов: 1
Ответов: 3
 Профиль | | #1 Добавлено: 29.08.05 12:43
А требуется удалить только 101101 Иванова и 201101 Дубовик. Спасибо!

Ответить

Номер ответа: 2
Автор ответа:
 Денис



ICQ: 109593029 

Вопросов: 15
Ответов: 32
 Профиль | | #2 Добавлено: 29.08.05 12:51
Попробуй "delete from tablica1 where code=101101 or code=201101"
Если поле code имеет текстовый формат, то условие надо взять в '101101' или '201101'

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 29.08.05 13:23
Если первичный ключ повторяется, то нафиг такой первичный ключ. Удалить всё поле нафиг.
А если это не первичный ключ, то не надо искать только по нему. Придётся по всем полям сразу (что, впрочем, не гарантирует удаления нужных, ибо однофамильцы сразу всё портят).

Посему можешь пока (если знаешь, что однофамильцев нет) сделать условие типа (code=101101 AND name='Иванов') OR (code=201101 AND name='Дубовик'). Но лучше всё переделать так, чтобы первичный ключ был, и был уникален.



Попробуй "delete from tablica1 where code=101101 or code=201101"

Прочитай тот код, что уже пробовал автор вопроса. Там, внизу его постинга.

Ответить

Номер ответа: 4
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #4 Добавлено: 29.08.05 15:01
Да, без уникального поля тяжеловато. Если тебе все равно какая из дублирующих записей останется, а какая удалится, то можно еще что нибудь придумать. Что то вроде

"delete from tablica1 where code in (select top 1 code from tablica1 where code=101101 or code=201101)"

Это так, что первое подумалось, не проверял.

Ответить

Номер ответа: 5
Автор ответа:
 neptoon



Вопросов: 1
Ответов: 3
 Профиль | | #5 Добавлено: 29.08.05 15:07
Наверно меня не поняли :) Просто изначально на работе кто-то индивидуальным кодам присвоил разные фио. Я имел ввиду как перекрестно проверить код и фио, и при совпадении удалить эту строку в таблице.

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 29.08.05 16:16
А как узнать, какая из двух должна остаться?

Ответить

Номер ответа: 7
Автор ответа:
 neptoon



Вопросов: 1
Ответов: 3
 Профиль | | #7 Добавлено: 29.08.05 16:38
Просто мне дали код и ФИО и сказали их удалить из таблицы. Требуется более расширенный выбор при поиске как по code, так по fio для последующего удаления. Т.е. если найден в поле code='101101' и к нему в сопоставимо в строке поле fio='Иванов Иван', то эту строку удалить из таблицы.

Ответить

Номер ответа: 8
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #8 Добавлено: 29.08.05 17:19
Просто мне дали код и ФИО

На бумажке что ли дали? С файлом (даже .txt было бы проще). И GSerg тебе кажется уже ответил в третьем посте.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам