Главная страница
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.051 c
3-74095
WuduMan
2003-10-02 01:02
2003.10.23
Картинки в базе данных


9-73957
Palladin
2003-04-19 11:42
2003.10.23
аналитическая геометрия и линейная алгебра


1-74122
BSOD
2003-10-11 03:02
2003.10.23
Все о Chart


1-74153
Донской
2003-10-10 14:53
2003.10.23
Вызов процедуры потрисовки графика из другого потока


1-74231
MakNik
2003-10-09 15:07
2003.10.23
CRC-код файла