Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
SELECT p.Продукт, Цена
FROM Продукты p JOIN Наличие n ON p.ID_продукта = n.Продукт WHERE Цена = (SELECT MIN (Цена) FROM Наличие);
Подзапрос ищет минимальную цену в таблице Наличие, а основной запрос выбирает продукты с найденной ценой. Следует заметить, что если агрегатные функции используются с предложением GROUP BY, то подзапрос может вернуть многочисленные значения. Они, следовательно, не допустимы в подзапросах такого характера. Даже если GROUP BY и HAVING используются таким способом, что только одна группа выводится с помощью подзапроса, команда будет отклонена в принципе. Если не удается построить подзапрос, возвращающий единственное значение вы должны использовать предикаты IN, ANY или ALL. Но следует заметить, что предикаты BETWEEN, LIKE, и IS NULL не могут использоваться с подзапросами Следует отметить все подзапросы в качестве результата должны возвращать одиночный столбец или одиночное выражение (может быть основано на нескольких столбцах). Это обязательное требование, поскольку результат запроса сравнивается с одиночным значением. Исключением из этого правила является ситуация, когда подзапросы используются с оператором EXISTS, который мы будем рассматривать ниже. Подзапросы в предложении HAVING. Подзапросы могут использоваться внутри предложения HAVING. Пример 30. Найти самые дешевые блюда. SELECT b.Блюдо, cast(SUM (s.Вес*n.Цена/1000)+b.Труд as numeric(6,2)) as Стоимость FROM (Блюда b JOIN Состав s ON b.ID_блюда =s.Блюдо) JOIN Наличие n ON s.Продукт = n.Продукт GROUP BY b.Блюдо, b.Труд HAVING (SUM (s.Вес*n.Цена/1000)+b.Труд) = (SELECT MIN(стоимость) FROM (SELECT b.Блюдо, SUM (s.Вес*n.Цена/1000)+b.Труд as Стоимость FROM (Блюда b JOIN Состав s ON b.ID_блюда = s.Блюдо) JOIN Наличие n ON s.Продукт = n.Продукт Date: 2015-09-18; view: 317; Нарушение авторских прав |