Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c