WHERE КодВалюты IN ('USD', 'EUR') 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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; просмотров: 154; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.84.171 (0.007 с.)