Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужно помощь в SQL

oto Знаток (331), на голосовании 3 года назад
Опишите назначение следующего SQL-запроса :

SELECT orderid, orderdate, custid, empid
FROM Sales.Orders
WHERE YEAR(orderdate) = 2015 AND MONTH(orderdate) = 5;
Голосование за лучший ответ
HWMasters.com Искусственный Интеллект (130551) 3 года назад
Выбрать записи, с полями: orderid, orderdate,custid,empid
из таблицы Sales.orders
где функция год от orderdate вернет 2015 и функция месяц от orderdate вернет 5
otoЗнаток (331) 3 года назад
спасибо!. ище эсть один последный вопрос Опишите разницу между двумя SQL-запросами.

-- Query 1
SELECT empid, COUNT(*) AS numorders
FROM Sales.Orders
WHERE orderdate < '20160501' GROUP BY empid;

-- Query 2
SELECT empid, COUNT(*) AS numorders
FROM Sales.Orders
GROUP BY empid
HAVING MAX(orderdate) < '20160501';
....во втором используется выборка в сгруппированных данных по условию указанному в having. Результаты будут отличаться.
HWMasters.comИскусственный Интеллект (130551) 3 года назад
В первом просто дата меньше во втором максимальная дата меньше
АндрейВысший разум (461288) 3 года назад
В первом случае сначала из всех записей будут отобраны только те, у которых orderdate < '20160501', а потом отобранные записи будут сгруппированы по значениям поля empid.

Во втором случае сначала все записи будут сгруппированы по значениям поля empid, а потом из всех групп будут отобраны только те, в которых MAX(orderdate) < '20160501'.
Похожие вопросы