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

Откуда: Екатеринбург
Сообщений: 1842
Hi people
Может я и туплю , но не могу вот упростить

select CONVERT(varchar(8), cdate, 4) as dt ,count(cdate)
from aptpresentchange
where scode=1
Group by CONVERT(varchar(8), cdate, 4)
order by CONVERT(varchar(8), cdate, 4) desc
1 апр 05, 08:30    [1432258]     Ответить | Цитировать Сообщить модератору
 Re: Немного оSelect и group by  [new]
Glory
Member

Откуда:
Сообщений: 104760
select CONVERT(varchar(8), cdate, 4) as dt ,count(cdate)
from aptpresentchange 
where scode=1
Group by CONVERT(varchar(8), cdate, 4) 
order by dt desc

select CONVERT(varchar(8), cdate, 4) as dt ,count(cdate)
from aptpresentchange 
where scode=1
Group by CONVERT(varchar(8), cdate, 4) 
order by 1 desc

select CONVERT(varchar(8), cdate, 4) as dt ,count(cdate)
from(
select CONVERT(varchar(8), cdate, 4) as dt , cdate
from aptpresentchange 
where scode=1) as a
Group by dt 
order by dt desc
1 апр 05, 09:32    [1432396]     Ответить | Цитировать Сообщить модератору
 Re: Немного оSelect и group by  [new]
JohnS
Member

Откуда: Екатеринбург
Сообщений: 1842
Я немного не точно задал вопрос
- "Почему нельзя в Group by использовать алиас , что бы запрос не был таким громозким ?"
4 апр 05, 09:43    [1437565]     Ответить | Цитировать Сообщить модератору
 Re: Немного оSelect и group by  [new]
JohnS
Member

Откуда: Екатеринбург
Сообщений: 1842
Glory
select CONVERT(varchar(8), cdate, 4) as dt ,count(cdate)
from(
select CONVERT(varchar(8), cdate, 4) as dt , cdate
from aptpresentchange 
where scode=1) as a
Group by dt 
order by dt desc


А вот, ты похоже ответил на мой второй вопрос , только я SQL запрос не совсем понял . Похоже использование алиаса в Group by нетривиальная задача :-(
4 апр 05, 09:51    [1437588]     Ответить | Цитировать Сообщить модератору
 Re: Немного оSelect и group by  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
Glory хотел вот так написать...
select dt ,count(cdate)
from(
select CONVERT(varchar(8), cdate, 4) as dt , cdate
from aptpresentchange 
where scode=1) as a
Group by dt 
order by dt desc
4 апр 05, 09:52    [1437591]     Ответить | Цитировать Сообщить модератору
 Re: Немного оSelect и group by  [new]
Glory
Member

Откуда:
Сообщений: 104760
JohnS
А вот, ты похоже ответил на мой второй вопрос , только я SQL запрос не совсем понял . Похоже использование алиаса в Group by нетривиальная задача :-(


Smirnov Anton ответил. А в алиасом столбца как раз все просто - его в текущем запросе можно использовать ТОЛЬКО в order by
4 апр 05, 10:07    [1437644]     Ответить | Цитировать Сообщить модератору
 Re: Немного оSelect и group by  [new]
JohnS
Member

Откуда: Екатеринбург
Сообщений: 1842
Smirnov Anton
Glory хотел вот так написать...
select dt ,count(cdate)
from(
select CONVERT(varchar(8), cdate, 4) as dt , cdate
from aptpresentchange 
where scode=1) as a
Group by dt 
order by dt desc


А вот запрос теперь работает !
Только очень интересен синтаксис
from(
select CONVERT(varchar(8), cdate, 4) as dt , cdate
from aptpresentchange 
where scode=1) as a
Во From прямо Select написан , просто чюдо !
5 апр 05, 14:03    [1441784]     Ответить | Цитировать Сообщить модератору
 Re: Немного оSelect и group by  [new]
Glory
Member

Откуда:
Сообщений: 104760
Во From прямо Select написан , просто чюдо !
И зовется это чудо вложенным запросом(subquery, derived table)
5 апр 05, 14:11    [1441823]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить