Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
WHERE КодВалюты IN ('USD', 'EUR')Содержание книги
Поиск на нашем сайте SELECT @Код AS [Код товара], @Имя AS Наименование, @Цена AS [Цена товара] GO Ç Здесь переменные @Код, @Имя, @Цена получили значения соответствующих полей последней строки набора данных, выбираемого командой SELECT (сам набор данных на экран не выводится). Поэтому, если, например, необходимо сохранить в переменных сначала сведения о товаре с наибольшей, а затем – с наименьшей ценой применительно к кодам валют USD и EUR, то необходимо выполнить следующую последовательность команд: É DECLARE @Код INT, @Имя VARCHAR(50), @Цена MONEY -- Выборка данных из таблицы Товар с сортировкой строк -- по столбцу Цена в порядке возрастания SELECT @Код = КодТовара, @Имя = Наименование, @Цена = Цена FROM Товар WHERE КодВалюты IN ('USD', 'EUR') ORDER BY Цена -- Вывод данных о товаре с наибольшей ценой SELECT @Код AS [Код товара], @Имя AS Наименование, @Цена AS [MAX цена товара]
-- Выборка данных из таблицы Товар с сортировкой строк по столбцу Цена -- в порядке убывания SELECT @Код = КодТовара, @Имя = Наименование, @Цена = Цена FROM Товар WHERE КодВалюты IN ('USD', 'EUR') ORDER BY Цена DESC -- DESC указывает на убывающий порядок сортировки -- Вывод данных о товаре с наименьшей ценой SELECT @Код AS [Код товара], @Имя AS Наименование, @Цена AS [MIN цена товара] GO Ç
Можно определить также среднюю цену товаров: É DECLARE @Цена MONEY SELECT @Цена = AVG(Цена) FROM Товар WHERE КодВалюты IN ('USD', 'EUR') -- Вывод средней цены товаров SELECT @Цена AS [AVG цена товаров] GO Ç
Пример. Пусть необходимо определить наименование товара, по которому был наибольший спрос за последние N дней. Один из вариантов решения этой задачи заключается в выполнении следующей последовательности шагов. 1). Объявляем переменные, требуемые для решения данной задачи: É DECLARE @Name VARCHAR(50), @Code INT, @Quantity NUMERIC(12,3), @N INT 2). Задаем значение интервала в днях: SET @N = 60 3). Выполняем выборку данных с группировкой по кодам товаров и подсчетом для каждой группы суммарного количества заказанного товара (т.е. величины спроса). При этом результирующий набор данных будем сортировать в порядке возрастания величины спроса и, следовательно, последняя его строка будет задавать товар с наибольшим спросом. Результат выполнения этой команды на экран не выдается, а вместо этого данные последней строки сохраняются в переменных @Code и @Quantity: SELECT @Code = КодТовара, @Quantity = SUM(Количество) FROM Заказ WHERE ДатаЗаказа BETWEEN GetDate() - @N AND GetDate() GROUP BY КодТовара ORDER BY SUM(Количество) 4). По найденному в предыдущем пункте коду товара с наибольшим спросом находим соответствующее ему наименование товара: SELECT @Name = Наименование FROM Товар WHERE КодТовара = @Code
5). Выдаем найденный результат на экран: SELECT @Name AS [Наименование товара], @Quantity AS [Итоговое кол-во], @N AS [Временной интервал] GO Ç Примечание. Все команды, рассмотренные на этих пяти шагах, выполняются в рамках одного пакета (поясняющий текст нужно удалить или закомментировать).
Программный код на языке Transact-SQL может включать в себя также битовые и логические операторы, операторы перехода (GOTO) и приостанова (WAITFOR), команды организации ветвлений (IF, CASE) и циклов (WHILE), операторные скобки (BEGIN…END) и др. (см. [1], стр. 1057 – 1087).
Временные таблицы. Они создаются в системной базе данных tempdb и бывают двух типов: локальные и глобальные. Локальные временные таблицы видны только из того соединения, в котором были созданы, и автоматически уничтожаются при закрытии этого соединения. Глобальные временные таблицы также уничтожаются при закрытии соединения, в котором были созданы, однако, когда они существуют, то видны и из любых других соединений. Это предоставляет удобный механизм для обмена данными между различными приложениями, например, между различными копиями хранимых процедур (одна и та же хранимая процедура, запускаемая различными пользователями, может обращаться к глобальной временной таблице для получения информации). Имена локальных временных таблиц начинаются символом «#», а глобальных – двумя такими символами. Примеры создания и использования локальных временных таблиц: É CREATE TABLE #Goods ( КодТовара INT PRIMARY KEY,
|
||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 233; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |