Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.20;
Скачать: CL | DM;

Вниз

SQL запрос   Найти похожие ветки 

 
Yasmina ©   (2003-02-03 08:45) [0]

Здравствуйте! Как новичок, очень надеюсь на Вашу помощь...Проблема состоит в том, что мне необходимо выбрать те записи из таблицы dbs которых нет в My_view, причем, важно не включать в результат запроса те записи у которых значения в поле COUP_NUM совпадают. Ставлю предикат DISTINCT, но это абсолютно не помогает , причем, как я поняла, он исключает записи, которые содержат повторяющиеся значения в полях которые перечислены в SELECTe , а хотелось бы что бы выбирались все поля...вот весь запрос:
SELECT DISTINCT "dbs.dbf".reis, "dbs.dbf".AVS_CODE, "dbs.dbf".FL_DATE, "dbs.dbf".COUP_NUM, "dbs.dbf".tar, "dbs.dbf".COUP_SER

FROM "dbs.dbf" LEFT JOIN ":FC:MY_VIEW" My_view ON ("dbs.dbf".COUP_NUM = My_view.NUM_DOC) and ("dbs.dbf".COUP_ser = My_view.ser_DOC)

WHERE ("dbs.dbf".FL_DATE between :p1 and :p2 ) and (My_view.NUM_DOC IS NULL)

ORDER BY "dbs.dbf".COUP_NUM, "dbs.dbf".reis,"dbs.dbf".AVS_CODE, "dbs.dbf".FL_DATE

вот вроде бы все...жду ответа ...как это лучше сделать????


 
passm ©   (2003-02-03 09:32) [1]

Yasmina © (03.02.03 08:45)> Попробуй по схеме:
SELECT T1.ID, T1.FIELD1, T1.FIELD2
FROM TABLE1 AS T1
WHERE T1.ID NOT IN (SELECT V1.ID FROM VIEW1 AS V1)


 
Соловьев ©   (2003-02-03 09:37) [2]

По каким полям DBS и MY_VIEW связаны? По COUP_NUM и NUM_DOC,COUP_SER и SER_DOC ?
Тогда:
SELECT *
FROM DBS
WHERE DBS.COUP_NUM<>ALL
(SELECT DISTINCT COUP_NUM
FROM DBS,MY_VIEW
WHERE (DBS.COUP_NUM = MY_VIEW.DOC_NUM)
AND
(DBS.COUP_SER = MY_VIEW.SER_DOC)
)


 
jocko   (2003-02-03 09:38) [3]

не совсем понятно зачем distinct
если представление небольшое то проще использовать вложенные запросы
select a.* from table1 a
where not exists(select b.SomeField from table2 b where b.SomeField = a.SomeField)


 
Yasmina ©   (2003-02-03 09:55) [4]

а как все таки из результата запроса убрать те записи, значения которых в поле Coup_num, совпадают??


 
Delirium^.Tremens ©   (2003-02-03 10:02) [5]

Нет времени попробовать, но что если это:

> and (My_view.NUM_DOC IS NULL)

поменять на:

and (dbs.COUP_NUM IS NULL) ?


 
Соловьев ©   (2003-02-03 10:05) [6]

>>значения которых в поле Coup_num, совпадают??
SELECT DISTINCT coup_num
FROM DBS


 
passm ©   (2003-02-03 10:10) [7]

Yasmina © (03.02.03 09:55)> А что если у одинаковых значений полей COUP_NUM имеются различные значения некоторых других полей? Необходимо определиться с ними :)
Как выход - взятие агрегированных значений от других полей (MIN, MAX...) с группировкой по COUP_NUM.


 
jocko   (2003-02-03 10:11) [8]

кажется я понял зачем distinct...?

select field1, field2, count(field3) as c1 from table1 a
where not exists(select b.SomeField from table2 b where b.SomeField = a.SomeField)
group by field1, field2
having c1 < 2



Страницы: 1 вся ветка

Текущий архив: 2003.02.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
4-63918
AlexG
2003-01-09 09:12
2003.02.20
ListView


9-63468
artgamer
2002-09-14 00:06
2003.02.20
X-Com will be back (часть 2)


6-63708
ламо
2002-12-31 14:44
2003.02.20
udp


7-63863
MaxWs
2002-12-21 00:08
2003.02.20
Обновление значения переменной


14-63817
Driverrr
2003-01-28 13:53
2003.02.20
Винты...