Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

группировать по месяцу [D7, IB6.x]


worldmen ©   (2010-05-31 18:03:00) 

Надо посчитать сколько документов было выдано по месяцам,
В таблице есть поле типа Date
Я сделал запрос

select extract(month from data_in), extract(year from data_in) FROM bilet b

А вот сгруппировать и посчитать сколько в каждом месясе было документов не получается. Группировка типа
group by 1, 2или
group by extract(month from data_in), extract(year from data_in)
выдает ошибку.


worldmen   (2010-06-01 14:12:00) [1]

Я вьюшку сделал. Про нее чето забыл. И все получилось


turbouser   (2010-06-01 13:44:00) [2]


> Плохиш ©   (01.06.10 10:52) [11]
>
>

Ну, делов -то..
select extract(month from data_in), extract(year from data_in),count(документы) FROM bilet b
group by b.data_in


Anatoly Podgoretsky   (2010-06-01 11:14:00) [3]

> И. Павел  (01.06.2010 10:28:08)  [8]

В MS SQL SERVER это не надо, он позволяет включать функции в группировку и в
другие места.


Плохиш   (2010-06-01 10:52:00) [4]


> turbouser ©   (01.06.10 10:37) [10]

Попробуй пост [7] прочитать несколько раз.


turbouser   (2010-06-01 10:37:00) [5]

select DISTINCTextract(month from data_in), extract(year from data_in) FROM bilet b
Вполне должно хватить


turbouser   (2010-06-01 10:36:00) [6]


> И. Павел ©   (01.06.10 10:28) [8]


> Если IB6.x это позволяет

Не позволяет.
Вообще, запрос в [0] выглядит нормально. Разве что в IB6 нет группировки по индексу (? не помню, если честно) и уж точно нет группировки по выражению


И. Павел   (2010-06-01 10:28:00) [7]

> [0] worldmen   (31.05.10 18:03)

Если IB6.x это позволяет, то можно создать временную таблицу. Например, в MS SQL SERVER 2005 и выше это делается просто - оператором with. Одно из полей таблицы может содержать месяцы и его можно будет включить в groupby.


Sergey13   (2010-06-01 10:17:00) [8]

> [0] worldmen   (31.05.10 18:03)

А что ты группировать то собрался? Наверное нужна какая то агрегатная функция. SUM или COUNT или еще чего.

ЗЫ: Если угадал то пирожок можно не высылать - ограничиваю потребление мучного. 8-)


Германн   (2010-06-01 02:12:00) [9]


> worldmen   (31.05.10 18:03)

sniknik'a  на тебя нету! :)


Loginov Dmitry   (2010-05-31 23:32:00) [10]

Если выдает ошибку, значит попробуйте SELECT ... FROM SELECT


Anatoly Podgoretsky   (2010-05-31 19:24:00) [11]

> worldmen  (31.05.2010 18:03:00)  [0]

А мы должны догадаться какую именно, а тому кто догадается дадим с полки
пирожок.


Leonid Troyanovsky   (2010-05-31 18:34:00) [12]


> worldmen   (31.05.10 18:14) [2]

> Выполняется, а вот как эти цифры (месяца) сгруппировать?

GROUP BY 1 ?

--
Regards, LVT.


worldmen   (2010-05-31 18:14:00) [13]

Сам запрос
select extract(month from data_in), extract(year from data_in) FROM bilet b
Выполняется, а вот как эти цифры (месяца) сгруппировать?


Медвежонок Пятачок   (2010-05-31 18:04:00) [14]

раз выдает ошибку, значит надо принимать ее и делать выводы


Наверх

Титульная страница Поиск, карта сайта Написать письмо