![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вычитание таблиц [D7]
Lam © (2004-03-31 15:28:00)делаю на MSSQL 2000 бд. Как делать запросом (используя MINUS, кажется) вычитание таблиц? Как получить те записи в таблице, которые отсутствуют в другой? Например, есть 2 таблицы
в таблице А поля id, NameA,KodA записи уникальны
в таблице В поля id, NameВ,KodВ
табл А табл В
id nameA kodA id nameA kodA
1 с 72 1 a 72
2 а 73 2 в 72
3 а 72
4 в 72
5 с 73
результат
1 с 72
2 а 73
3 с 73
а результат надо дописать к таблице В
под рукой нет кода запроса, который пробовал написать((
буду благодарен за любые идеи. или примеры ))
bushmen (2004-04-01 12:53:00) [1]Используй ExecSQL, а не Open
Strelka (2004-04-01 12:33:00) [2]Само вычитание работает, но не могу добавить результ в таблицу, вылетает с ошибкой Query1:CommandText does not return a result set
LexusR (2004-04-01 06:52:00) [3]
insert into tablB (nameB,kodB)
(select nameA, kodA from tablA
where not exists(select 1 from tabB
where nameB=nameA and kodB=kodA )
)
Lam (2004-03-31 20:06:00) [4]ошибка..
Lam (2004-03-31 19:03:00) [5]табл А табл В
id nameA kodA id nameB kodB
1 с 72 1 a 72
2 а 73 2 в 72
3 а 72
4 в 72
5 с 73
результат
1 с 72
2 а 73
3 с 73
соррьки))
bushmen (2004-03-31 16:38:00) [6]>Еще по KodA и KodB. см пример в начале.
>табл А табл В
>id nameA kodA id nameA kodA
Поля KodB я в упор не вижу!
Lam (2004-03-31 16:37:00) [7]>>Lam
>
>А по всем полям надо искать отсутствие или только по nameA ?
по двум полям. Еще по KodA и KodB. см пример в начале.
а если поелй больше? лана, потом разберусь с дольшим количеством
bushmen (2004-03-31 16:36:00) [8]>Курдль ©
Это только на совпадение поля NameA. А тут если я правильно понял, еще и KodA тоже должен не совпадать
Курдль (2004-03-31 16:31:00) [9]
select NAME_A
from TABLE_A A
where not exists (select 1 from TABLE_B B where B.NAME_B = A.NAME_A)
bushmen (2004-03-31 16:25:00) [10]>В идеале - устраняет дублирующиеся записи.
Да, но только внутри таблицы, без учета другой
Курдль (2004-03-31 16:25:00) [11]Не, не так! Не понЯл Ваших устремлений! :)
Курдль (2004-03-31 16:24:00) [12]
> А причем тут distinct ?
В идеале - устраняет дублирующиеся записи.
Но решение Вашей проблемы здесь (unionбезallустраняет их сам):
select NAME_A as NAME from TABLE_A
union
select NAME_B as NAME from TABLE_B
stone (2004-03-31 16:19:00) [13]подробности в Books Online, которая идет в составе MSSQL
bushmen (2004-03-31 16:18:00) [14]>Lam
А по всем полям надо искать отсутствие или только по nameA ?
Lam (2004-03-31 16:16:00) [15]>есть not exists
подробности в массы.
bushmen (2004-03-31 15:56:00) [16]>Курдль ©
А причем тут distinct ?
Курдль (2004-03-31 15:54:00) [17]
distinct
stone (2004-03-31 15:51:00) [18]
> используя MINUS, кажется
есть not exists