Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

sql   Найти похожие ветки 

 
rosl   (2003-10-02 06:51) [0]

Уважаемые МАСТЕРА!!!
Помогите с запросом.
Есть три файла *.dbf Results.DBF(база), payers.DBF(справочник плательщиков), income.DBF(справочник кодов)
делаю запрос // выбрать записи соответствующие справочникам.
select distinct name, col005, col010, col008
from bd\Results.DBF, bd\payers.DBF, bd\income.DBF
where code_inc = col010 and col005 = inn
но теперь нужно сделать наоборот
выбрать записи НЕ соответствующие справочникам
что-то вроде
where code_inc <> col010 and col005 <> inn //но <> не подходит


 
Warlock ©   (2003-10-02 08:43) [1]

where not(code_inc = col010) and not(col005 = inn)

или же

where not((code_inc = col010) and (col005 = inn))


 
rosl   (2003-10-03 03:18) [2]

не получилось, из 135 записей отобралось больше 2000


 
Плохиш_   (2003-10-03 03:23) [3]

Для начала надо бы разобраться, что такое записи НЕ соответствующие справочникам


 
Плохиш_   (2003-10-03 03:27) [4]

>rosl (03.10.03 03:18) [2]

> не получилось, из 135 записей отобралось больше 2000


Хм, а ты ещё раз прочитай, что в запросе написал, подумай и поймёшь почему.
Если не поймёшь, то идёшь читать книжки по SQL. Хотя с этого стоило начать.


 
rosl   (2003-10-03 06:44) [5]

Для начала надо бы разобраться, что такое записи НЕ соответствующие справочникам

в базе есть записи, которых нет в справочниках. например:
база
col005 col010
25000100 1010202
00000111 1010201

справочник плательщиков
inn name
25000100 петя

справочниек кодов
code_inc
1010202

вот и нужно из базы выбрать строку в таком виде:
col005 col010 inn name
25000100 1010202 25000100 петя


 
ЮЮ ©   (2003-10-03 07:51) [6]

select distinct name, col005, col010, col008
from
Results
LEFT JOIN payers ON col005 = inn
LEFT JOIN income ON col010 = code_inc

Это запрос вернет ровно столько записей, сколько их в Results
Теперь отбираем:
1) те для которых нет записи в payers
WHERE (inn IS NULL)
2) те для которых нет записи в payers или income
WHERE (inn IS NULL) OR (code_inc IS NULL)
3) те для которых есть записи и в payers и в income
WHERE ТЩЕ (inn IS NULL) AND NOT (code_inc IS NULL)
4) и т.д.



Страницы: 1 вся ветка

Текущий архив: 2003.10.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
3-74039
Игоряныч
2003-10-03 08:11
2003.10.23
Как закрепить левые столбцы в DBGrid.


1-74180
Lam
2003-10-10 13:10
2003.10.23
StringGrid


1-74115
Qwe
2003-10-11 20:01
2003.10.23
Label в несколько строк


14-74405
Мазут Береговой
2003-10-06 04:59
2003.10.23
Слышали о такой машине как Corvette? Компания Chevrolet.


6-74350
Davinchi
2003-08-26 13:51
2003.10.23
Как WebBrowser.Document привести к Variant