Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
3-73970
Neo
2003-10-01 12:07
2003.10.23
Хранимые процедуры (SQL Server 2000, Delphi6)


6-74360
Pacifist
2003-08-21 19:15
2003.10.23
Подключение к Сокетам в условии динамического IP :)


3-73969
Bless
2003-10-01 15:48
2003.10.23
Как разрешить модификацию но запретить удаление?


1-74178
Berezne
2003-10-13 17:42
2003.10.23
Ячейки в DBGrid


1-74239
dimm
2003-10-13 16:09
2003.10.23
Уважаемые мастера подскажите как найти символ переноса строки ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский