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

Вниз

формирование запроса IB   Найти похожие ветки 

 
erika ©   (2005-07-15 16:49) [0]

Формирую запрос на вывод данных из таблиц слудующим образом

select dknom, dkp, name
from discont, sells
inner join klients on discont.ink=klients.ink
where (discont.idk  in ( select sells.idk  from sells  group by IDK having count (IDK)=1))

идея была такова: вывести всех клиентов (klients) по дисконтным книжкам (discont), с количеством покупок (sells) равным единице.

резельтата моего запроса: выводятся записи с одинаковым номером дисконтной книжки (discont  поле dknom) множество количество раз.

Вопрос: где ошибка в запросе


 
Ольга   (2005-07-15 17:03) [1]

1. Таблицы sells и discont не связаны
2. Не понятно зачем group by, если нет агрегатных функций


 
erika ©   (2005-07-15 17:07) [2]

т.е. мне необходимо добавить

...where (discont.idk  in ( select sells.idk  from sells

inner join discont on discont.idk = sells.idk

group by IDK having count (IDK)=1))


 
Ольга   (2005-07-15 17:35) [3]

Разберите для начала внутренний запрос. Когда он будет выбирать то, что надо, тогда можно его встраивать во внешний. Может вы перемудрили, вот такой запрос не подходит? :

select sells.idk  from sells

inner join discont on discont.idk = sells.idk

where sells.<номер покупки>=1


 
Reindeer Moss Eater ©   (2005-07-15 17:39) [4]

Внутренний запрос можно исправить.
Но тогда перестанет работать внешний, так как там IN.
А правильный внутренний запрос вернет как минимум два поля.


 
Ольга   (2005-07-15 17:43) [5]

erika ©
Приведите структуры таблиц - дело пойдет быстрее. Что есть номер покупки, порядковый?, Тогда вообще не к чему огород городить, все просто.


 
Reindeer Moss Eater ©   (2005-07-15 17:46) [6]

Достаточно прикрутить третью таблицу к этому
http://delphimaster.net/view/3-1121417544/


 
DSKalugin ©   (2005-07-15 17:50) [7]

Не рекомендуется смешивать в запросе явное объединение таблиц
inner join и неявное from discont, sells where
Переведи все на join и самому станет понятен запрос



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

Форум: "Базы";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.041 c
3-1121438865
_Anton
2005-07-15 18:47
2005.08.28
ODBC и BLOB


1-1123149634
Alexey_T-O
2005-08-04 14:00
2005.08.28
Проблема с переменной


3-1121342988
Pil
2005-07-14 16:09
2005.08.28
формирование отчетов


3-1121344543
Ирина
2005-07-14 16:35
2005.08.28
Отключение связей


10-1101131714
Fill
2004-11-22 16:55
2005.08.28
Outlook





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