Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.006 c
1-63632
iNew
2003-02-11 07:28
2003.02.20
Коприую файл с винта на дискету. Как проверить нормально


4-63903
123000
2003-01-07 13:46
2003.02.20
Фон подписей значков на Десктопе


3-63507
mate
2003-02-02 16:47
2003.02.20
Создание отчётов QReport


3-63469
Delphinium
2003-02-01 14:26
2003.02.20
DBGrid


14-63818
Сатир
2003-02-03 22:55
2003.02.20
Помогите с Юниксом





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский