Запрос MS SQL Server. Примеры SELECT: 11-20

Печать

Примеры запросов SQL могут использованы для изучения и практикума написания запросов в MS SQL Server.

Один запрос SQL можно вкладывать в другой. Подзапрос - есть не что иное, как запрос внутри запроса. Обычно, подзапрос используется в конструкции WHERE. Но возможны и другие способы использования подзапросов.

Examples of SQL queries can be used to study and practice writing queries in MS SQL Server.

One SQL query can be invested in another. A subquery is nothing but a query within a query. Usually, the subquery is used in the WHERE clause. But there are other possible ways to use subqueries.

Запрос Q011. Выводится информация о товарах из таблицы m_product, коды которых есть и в таблице m_income:

Query Q011. Information about products from the m_product table is displayed, which codes are also in the m_income table:

SELECT *
FROM m_product
WHERE id IN (SELECT product_id FROM m_income);

Запрос Q012. Выводится список товаров из таблицы m_product, кодов которых нет в таблице m_outcome:

Query Q012. The list of products from the m_product table is displayed, the codes of which are not in the m_outcome table:

SELECT *
FROM m_product
WHERE id NOT IN (SELECT product_id FROM m_outcome);

Запрос Q013. В этом запросе SQL выводится уникальный список кодов и названий товаров, коды которых есть в таблице m_income, но которых нет в таблице m_outcome:

Query Q013. This SQL query displays a unique list of codes and product names, the codes of which are in the m_income table, but which are not in the m_outcome table:

SELECT DISTINCT product_id, title
FROM m_income INNER JOIN m_product
ON m_income.product_id=m_product.id
WHERE product_id NOT IN (SELECT product_id FROM m_outcome);

Запрос Q014. Выводится из таблицы m_category уникальный список категорий, названия которых начинаются на букву М:

Query Q014. The unique list of categories starting with M is displayed from the m_category table:

SELECT DISTINCT title
FROM m_product
WHERE title LIKE 'М%';

Запрос Q015. Пример выполнения арифметических операций над полями в запросе и переименования полей в запросе (alias). В этом примере для каждой записи о расходе товара подсчитываются сумма расхода = количество*цена и размер прибыли, при предположении, что прибыль составляет 7 процентов от суммы продаж:

Query Q015. An example of performing arithmetic operations on fields in a query and renaming fields in a query (alias). In this example, for each commodity expense entry, the amount of the expense is calculated = quantity * price and profit, assuming that the profit is 7 percent of the sales amount:

SELECT dt, product_id, amount, price, amount*price AS outcome_sum, 
amount*price/100*7 AS profit
FROM m_outcome;

Запрос Q016. В MS SQL Server вместо AS можно воспользоваться знаком =. Только в этом случае надо сперва написать имя алиаса. Проанализировав и упростив арифметические операции, можно увеличить скорость выполнения запроса:

Query Q016. In MS SQL Server, you can use the = sign instead of AS. Only in this case it is first necessary to write the name of the alias. Analyzing and simplifying arithmetic operations, you can increase the speed of query execution:

SELECT dt, product_id, amount, price, outcome_sum=amount*price, 
profit=amount*price*0.07
FROM m_outcome;

Запрос Q017. При помощи инструкции INNER JOIN можно объединить данные нескольких таблиц. В следующем примере, в зависимости от значения ctgry_id, каждой записи таблицы m_income, сопоставляется название категории из таблицы m_category, к которой принадлежит товар:

Query Q017. Using the INNER JOIN statement, you can combine the data of several tables. In the following example, depending on the value of ctgry_id, for each entry in the m_income table, the name of the category from the m_category table to which the item belongs is mapped:

SELECT c.title, b.title, dt, amount, price, amount*price AS income_sum
FROM (m_income AS a INNER JOIN m_product AS b ON a.product_id=b.id)
INNER JOIN m_category AS c ON b.ctgry_id=c.id
ORDER BY c.title, b.title;

Запрос Q018. Такие функции как SUM - сумма, COUNT - количество, AVG – среднее арифметическое значение, MAX – максимальное значение, MIN – минимальное значение называются агрегатными функциями. Они принимают множество значений, и после их обработки возвращают единственное значение. Пример подсчета суммы произведения полей amount и price при помощи агрегатной функции SUM:

Query Q018. Such functions as SUM - sum, COUNT - quantity, AVG - arithmetic mean, MAX - maximum value, MIN - minimum value are called aggregate functions. They take multiple values, and after they are processed, a single value is returned. An example of counting the sum of the product of the amount and price fields using the aggregate function SUM:

SELECT SUM(amount*price) AS Total_Sum
FROM m_income;

Запрос Q019. Пример использования нескольких агрегатных функций:

Query Q019. Example of using multiple aggregate functions:

SELECT Sum(amount) AS Amount_Sum, AVG(amount) AS Amount_AVG, 
MAX(amount) AS Amount_Max, Min(amount) AS Amount_Min,
Count(*) AS Total_Number
FROM m_income;

Запрос Q020. В этом примере подсчитана сумма всех товаров с кодом 1, оприходованных в июне 2011 года:

Query Q020. In this example, the sum of all products with id 1 credited in June 2011 was calculated:

SELECT Sum(amount*price) AS income_sum
FROM m_income
WHERE product_id=1 AND dt BETWEEN '2011-06-01' AND '2011-06-30';

Добавить комментарий


Защитный код
Обновить

Произведение «OFTOB.COM» публикуется на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Непортированная.