Благодарю за ответы, но вот есть еще один вопрос

Димитрий
Дата: 16.12.2002 22:04:56
Есть таблица, из трех полей. Ключевое (допустим код книги) типа int; обязательное (допустим "Шкаф") типа int; и обязательное (допустим "наличие") типа bit. Как создать запрос, выводящий шкафы в которых отсутствуют более 20% книг?
Все сделать в одном запросе. Без тригегеров и хранимых процедур.

P.S. Заранее спасибо всем, кто откликнется.
Сергей Тихонов
Дата: 16.12.2002 22:09:15
Это зависит от того, как ты организуешь "Шкаф"... ;-))
Lexis
Дата: 16.12.2002 23:39:47
думаю, что ничего сложного
только 20% от чего? известна емкость шкафов?
having можно попробовать

select Шкаф, 100*sum(bit_наличе)/всего_в_шкафу
from наша_библиотека
group by Шкаф
having 100*sum(bit_наличе)/всего_в_шкафу<80
Arch-saint
Дата: 17.12.2002 11:02:34
SELECT t1.Шкаф FROM
(SELECT Шкаф, count(код) as num FROM table_name) as t1
LEFT OUTER JOIN
(SELECT Шкаф, count(код) as num FROM table_name WHERE наличие=1) as t2
ON t1.Шкаф=t2.Шкаф
WHERE case when t2.num is null then 0 else t2.num/t1.num end < 80
GROUP BY t1.Шкаф