![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
формирование запроса IB [D6, IB6.x]
erika © (2005-07-15 16:49:00)Формирую запрос на вывод данных из таблиц слудующим образом
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) множество количество раз.
Вопрос: где ошибка в запросе
DSKalugin (2005-07-15 17:50:00) [1]Не рекомендуется смешивать в запросе явное объединение таблиц
inner joinи неявное from discont, sells where
Переведи все на joinи самому станет понятен запрос
Reindeer Moss Eater (2005-07-15 17:46:00) [2]Достаточно прикрутить третью таблицу к этому
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1121417544&n=1
Ольга (2005-07-15 17:43:00) [3]erika ©
Приведите структуры таблиц - дело пойдет быстрее. Что есть номер покупки, порядковый?, Тогда вообще не к чему огород городить, все просто.
Reindeer Moss Eater (2005-07-15 17:39:00) [4]Внутренний запрос можно исправить.
Но тогда перестанет работать внешний, так как там IN.
А правильный внутренний запрос вернет как минимум два поля.
Ольга (2005-07-15 17:35:00) [5]Разберите для начала внутренний запрос. Когда он будет выбирать то, что надо, тогда можно его встраивать во внешний. Может вы перемудрили, вот такой запрос не подходит? :
select sells.idk from sells
inner join discont on discont.idk = sells.idk
where sells.<номер покупки>=1
erika (2005-07-15 17:07:00) [6]т.е. мне необходимо добавить
...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:03:00) [7]1. Таблицы sells и discont не связаны
2. Не понятно зачем group by, если нет агрегатных функций