Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите с запросом [D7, dBase, FoxPro]


rosl ©   (2004-02-02 05:43:00) 

Уважаемые МАСТЕРА!!!
помогите с запросом. В файле main1.dbf делаю проверку при помощи main4.dbf (name.dbf -справочник наименований) запрос такой:

select b.s_korr, b.podr, b.ved, b.c_st, b.v_r, b.class, b.summ, p.col07, p.col07 - b.summ, n.name
from baza\main1.dbf b, baza\main4.dbf p, sprav\name.dbf n
where b.s_korr = p.col01
and b.podr <> col02
and b.ved <> p.col03
and b.c_st <> p.col04
and b.v_r <> p.col05
and b.class <> p.col06

возвращает сторки main1.dbf, которые есть в main4.dbf, но может оказаться так, что в main4.dbf таких строк не будет. Вот и нужно сделать запрос как бы наоборот, показать строки main1.dbf которых нет в main4.dbf
пробовал
or b.podr <> col02
or b.ved <> p.col03
or b.c_st <> p.col04
or b.v_r <> p.col05
or b.class <> p.col06
DELPHI просто виснет (я знаю, что запрос не верный)
получается если так:
and b.podr <> col02
and b.ved = p.col03
and b.c_st = p.col04
and b.v_r = p.col05
and b.class = p.col06
возвращает строки, которые отличаются по полю b.podr, а мне нужно увидеть все строки если есть отличие в одном или двух, трёх полях

надеюсь не слишком утомил подробностями


ЮЮ   (2004-02-03 04:58:00) [1]

> не дописал
так допиши :-)
LEFT JOIN sprav\name.dbf n ON b.number = n.id


rosl   (2004-02-03 04:08:00) [2]

не дописал
from baza\main1.dbf b, baza\main4.dbf p, sprav\name.dbf n
where b.s_korr = p.col01
and b.podr = col02
and b.ved = p.col03
and b.c_st = p.col04
and b.v_r = p.col05
and b.class = p.col06

and b.number = n.id


ЮЮ   (2004-02-02 09:53:00) [3]

select
b.s_korr, b.podr, b.ved, b.c_st, b.v_r, b.class, b.summ, p.col07, p.col07 - b.summ, n.name
from
baza\main1.dbf b
LEFT JOIN baza\main4.dbf p ON
(b.s_korr = p.col01) and (b.podr = col02) and (and b.ved = p.col03) and
(b.c_st = p.col04) and (b.v_r = p.col05) and (b.class = p.col06)
LEFT JOIN sprav\name.dbf n ON <а где связь с третьей таблицей?>
WHERE (p.col01 IS NULL) <т.е. не удалось сопоставить запись в b c записью из p)


rosl   (2004-02-02 05:45:00) [4]

извиняюсь первый запрос
select b.s_korr, b.podr, b.ved, b.c_st, b.v_r, b.class, b.summ, p.col07, p.col07 - b.summ, n.name
from baza\main1.dbf b, baza\main4.dbf p, sprav\name.dbf n
where b.s_korr = p.col01
and b.podr = col02
and b.ved = p.col03
and b.c_st = p.col04
and b.v_r = p.col05
and b.class = p.col06


Наверх

Титульная страница Поиск, карта сайта Написать письмо