select top 10 OrderID from Northwind..Orders--------------------------------------------OrderID10248102491025010251102521025310254102551025610257
select max(t.OrderID) from (select top 10 OrderID from Northwind..Orders) tСкрипт 2Выполняет, стало быть, запрос и получает значение 11077, которое, безусловно, является максимальным, но аж во всей таблице Orders.Но товарищ вдобавок проходил common table expressions, потому он переписывает запрос так:
select max(t.OrderID) from (select top 10 OrderID from Northwind..Orders) t
;with cte as (select top 10 OrderID from Northwind..Orders)select max(OrderID) from cte
select * from (select top 10 OrderID from Northwind..Orders) tСкрипт 4
select count(*) from (select top 10 OrderID from Northwind..Orders) t---------------------------------------10
select sum(x) from (select top 10 OrderID from Northwind..Orders) t(x)-----------------------102525
Скрипт 6Трясущимися руками он складывает 10248, 10249, ..., 10257 на калькуляторе (железном, электрическом), потому что он уже не доверяет ни экселю, ни встроенному калькулятору, ничему, что находится под управлением операционной системы Windows. Сумма сходится. Он снова выполняет Скрипт 1 и снова получает максимум по всей таблице. Товарищ взвывает и бежит биться головой об стенку.
Помогите, пожалуйста, товарищу - http://sqlclub.ru/forum/viewtopic.php?f=4&t=1574. Какой момент он упустил сделать в запросе, что его так не на шутку колбасит. Время уже позднее, а он стучится об стенку все сильнее. Соседи-то ни в чем не виноваты.