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

Вниз

формирование запроса 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
3-1121418159
vigo
2005-07-15 13:02
2005.08.28
Подключение к Oracle


1-1122138110
Алексей Петухов
2005-07-23 21:01
2005.08.28
HTML Редактор от Microsoft


4-1117686064
Sir
2005-06-02 08:21
2005.08.28
Серийный номер видеокарты &amp; материнской платы


4-1121334928
IceBeerg
2005-07-14 13:55
2005.08.28
Установка даты.


1-1123180138
rlz
2005-08-04 22:28
2005.08.28
Нужна помощь