Главная страница
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.026 c
9-73961
VitGun
2002-11-28 19:04
2003.10.23
Движок


14-74459
ghost_by
2003-10-02 11:41
2003.10.23
Защита программы


1-74195
AngelSaint
2003-10-06 13:11
2003.10.23
Шрифты и кодировки


3-74038
PGrinevich
2003-10-02 11:37
2003.10.23
Трехзвенка на Delphi 3 + MS Access + ODBC + BDE


1-74297
Magical
2003-10-10 22:21
2003.10.23
Как быстрее всего получить screenshort экрана.