Консультация № 145992
04.10.2008, 18:10
0.00 руб.
0 2 2
Здраствуйте Кважаемые эксперты, у меня есть запрос, который выводит данные из двух таблиц: egzempliar и kniga, выводит этот запрос такие данные: ISBN, название книги и число эгземпляров данной книги. Сам запрос показан в приложении. Помогите пожалуйста переделать этот запрос так, чтобы в результате получять информацию только о тех книгах, которых эгземпляров есть боьше чем 3. Желательно использую when либо except.
Заранее спасибо.


Приложение:
select kniga.isbn, kniga.nazvanije, count(*) as Egzempliarov from kniga, egzempliar where kniga.isbn = egzempliar.isbn group by kniga.isbn, kniga.nazvanije;

Обсуждение

Неизвестный
06.10.2008, 08:04
общий
это ответ
Здравствуйте, Станислав!
Попробуйте такой вариант:

select kniga.isbn, kniga.nazvanije, count(*) as Egzempliarov
from kniga, egzempliar
where kniga.isbn = egzempliar.isbn
group by kniga.isbn, kniga.nazvanije
having count(kniga.isbn)>3
Неизвестный
06.10.2008, 09:11
общий
это ответ
Здравствуйте, Станислав!

Вот, например два варианта:
Код:
 
-- первый вариант --------------
SELECT
KNIGA.ISDN,
KNIGA.NAZVANIE,
COUNT(EXEMPLAR.ISDN) AS COUNT_EXEMPLAR
FROM KNIGA
INNER JOINEXEMPLAR ON (KNIGA.ISDN = EXEMPLAR.ISDN)
WHERE KNIGA.ISDN IN (SELECT ISDN FROM EXEMPLAR GROUP BY ISDN HAVING COUNT (ISDN) >3)
GROUP BY KNIGA.ISDN, KNIGA.NAZVANIE
--******** второй вариат ***********
SELECT
KNIGA.ISDN,
KNIGA.NAZVANIE,
COUNT(EXEMPLAR.ISDN) AS COUNT_EXEMPLAR
FROM KNIGA
INNER JOIN EXEMPLAR ON (KNIGA.ISDN = EXEMPLAR.ISDN)
GROUP BY KNIGA.ISDN, KNIGA.NAZVANIE
HAVING COUNT(EXEMPLAR.ISDN) > 3

Форма ответа