Главная страница
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.48 MB
Время: 0.022 c
1-74175
ORMADA
2003-10-10 12:15
2003.10.23
Определение длины стринга


1-74119
Yahidze
2003-10-11 16:54
2003.10.23
Преобразование Фурье


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


3-73971
Dark Elf
2003-10-01 14:47
2003.10.23
количество столбцов в DBGrid


14-74374
Another
2003-10-02 20:54
2003.10.23
Найти книгу