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

Откуда:
Сообщений: 58
всем привет, что-то почитал несколько мануалов по group by, но так и не могу свой запрос доделать:
select count(*) 'Количество терминалов', cast(address as varchar) 'Адрес' from Terminals where LastConnectTime>=('01.05.2012 00:00:59') group by Address; - выводит список количества точек по адресам, например:
3 Пенза, Терновского, 183
3 Пенза, Пр. Строителей, 40
3 Пенза, Окружная, 27В

а можете подсказать как сделать, чтобы еще и группировал по первым 4 символам поля Address, пытался так
select count(*) 'Количество терминалов', cast(address as varchar) 'Адрес' from Terminals where LastConnectTime>=('01.05.2012 00:00:59') group by SUBSTRING(Address, 1, 5) - не получается, потому что не верно указываю для group by, а как правильно указать - не догоняю
14 май 12, 16:55    [12551724]     Ответить | Цитировать Сообщить модератору
 Re: group by substring  [new]
is_me
Member

Откуда: Нижний Новгород
Сообщений: 165
dolf85,
может я сам чо-то не догонаю, но как можно сгруппировать строки по первым 2-м
символам, если 3,4 символы различны?
Например:
апро
апол
Как их сгруппировать по первым 2-м символам?
Можно ввести еще один столбец при выборе, с обрезкой substring
и попытаться сгруппировать по нему

select substring (val,1,2)
      ,val 
from tTest1 
group by substring (val,1,2)
        ,val
14 май 12, 17:06    [12551868]     Ответить | Цитировать Сообщить модератору
 Re: group by substring  [new]
dolf85
Member

Откуда:
Сообщений: 58
тема закрыта, это я чо-то тупанул и зациклился, спасибо)))
14 май 12, 17:09    [12551901]     Ответить | Цитировать Сообщить модератору
 Re: group by substring  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
dolf85
пытался так
select count(*) 'Количество терминалов', cast(address as varchar) 'Адрес' from Terminals where LastConnectTime>=('01.05.2012 00:00:59') group by SUBSTRING(Address, 1, 5) - не получается, потому что не верно указываю для group by, а как правильно указать - не догоняю

select count(*) [Количество терминалов], SUBSTRING(Address, 1, 5) [Адрес] 
from Terminals 
where LastConnectTime>=('01.05.2012 00:00:59') 
group by SUBSTRING(Address, 1, 5)
14 май 12, 17:10    [12551908]     Ответить | Цитировать Сообщить модератору
 Re: group by substring  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
чтобы еще и группировал по первым 4 символам поля Address, пытался так


надо substring(Address,1,4)
14 май 12, 17:11    [12551927]     Ответить | Цитировать Сообщить модератору
 Re: group by substring  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
dolf85
тема закрыта, это я чо-то тупанул и зациклился, спасибо)))
1. Зачем скобки вокруг даты?
2. Неправильно задаёте дату. Надо так:
'20120501 00:00:59'
или
'2012-05-01T00:00:59'
или
CONVERT(datetime,'2012-05-01 00:00:59',120) и т.п.
3. Вместо SUBSTRING(Address, 1, 4) можно и LEFT(Address, 4)
14 май 12, 17:33    [12552164]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить