Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Оптимизация SQL запроса  [new]
aimboss
Member

Откуда:
Сообщений: 1
If exists(select * From sysobjects where name= 'temptable' and xtype='U') Begin Drop table Students.dbo.temptable end

Select IDENTITY(int,1,1) as numall,0 as num, tb.* Into TempTable From
(Select S.id, Subject, SumBall=case when Level1 is null then 0 else Level1 end +case when Level2 is null then 0 else Level2 end+case when Level3 is null then 0 else Level3 end
From Student S, Balls B
where new_group in (Select new_Group From Student where id=23652) and B.id=S.id) tb
Order by Subject, SumBall desc

Update TempTable set num=numall

Update tempTable
Set num=numall+1-(select Min(e1.num) From temptable e1 Where
TempTable.Subject=e1.Subject )

Select * From TempTable Order by Subject, SumBall desc

Смысл запроса. К выводу нужно добавить столбец со счетчиком, при этом при смене Subject счетчик должен обнуляться. Решение нашел как написал выше, через временную таблицу, НО пользователю нельзя давать на права на создание таблиц. Есть ли какой нибудь другой метод (SQL, не программный) сделать тоже самое, но без создания дополнительной таблицы?
25 окт 11, 10:06    [11493073]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация SQL запроса  [new]
aleks2
Guest
1. ROW_NUMBER()
2. Into #TempTable

И фсе ваши проблемы решены.
25 окт 11, 10:12    [11493118]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить