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

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

групировка в sql запросе [D7, dBase, FoxPro]


Страницы:   1 2

Константин_ ©   (2006-11-23 17:28:00) 

есть таблица формата
sumall,date1 с данными
10 | 01.01.2006
20 | 02.01.2006
30 | 01.02.2006
каким образом можно сгрупировать таблицу по дате учитывая только месяц и год т.е.

select Sum(sumall),date1 from таблица.dbf
group by ???????

Если кто знает как сделать, подскажите, плз.


Константин_   (2006-11-25 10:40:00) [1]

Всем спасибо за помощь, буду искать дрю путь.


ЮЮ   (2006-11-25 09:47:00) [2]

Anatoly Podgoretsky ©   (24.11.06 18:15) [21]
> ANB  (24.11.2006 16:44:14)  [14]

Месяц с годом вытянуть нельзя, но можно по отдельности, что одно и тоже, позволит и группировать и сортировать в любоа порядке и во where использовать.


сортировать(через указание номера) и в в WHERE, никто не спорит, можно, а вот с GROUP BY облом:
Note Derived values (calculated values) cannot be used as the basis for a GROUP BY clause.

Остается использовать Local View


Константин_   (2006-11-24 18:23:00) [3]

справку не читал, т.к русской нет... а с английским туго... сейчас смотрю faq, те что нашел...


Anatoly Podgoretsky   (2006-11-24 18:18:00) [4]

> Константин_  (24.11.2006 17:37:20)  [20]

Забыл спросить, а справку ты уже прочитал?


Anatoly Podgoretsky   (2006-11-24 18:18:00) [5]

> Константин_  (24.11.2006 17:37:20)  [20]

Приводи точный вопрос, а твое мамой клянусь малого стоит


Константин_   (2006-11-24 18:18:00) [6]

у меня они и вытянуты по отдельности - при запросе помещаются в разные поля
а групировка не идет, зараза


Anatoly Podgoretsky   (2006-11-24 18:15:00) [7]

> ANB  (24.11.2006 16:44:14)  [14]

Месяц с годом вытянуть нельзя, но можно по отдельности, что одно и тоже, позволит и группировать и сортировать в любоа порядке и во where использовать.


Константин_   (2006-11-24 17:37:00) [8]

таже самая ошибка (((


ANB   (2006-11-24 17:33:00) [9]


> Константин_   (24.11.06 17:17) [17]

а
group by cast(EXTRACT(month FROM date1) as int), cast(EXTRACT(Year FROM date1) as int)
пробовал ?


Stanislav   (2006-11-24 17:32:00) [10]

А так работает?
GROUP BY cast(EXTRACT(month FROM date1) as int), cast(EXTRACT(Year FROM
date1) as int)


Константин_   (2006-11-24 17:17:00) [11]

Вообщем дошел до следующего запроса
select sumall,cast(EXTRACT(month FROM date1) as int) as m,cast(EXTRACT(Year FROM date1) as int) as Y
from 'c:\мой\Проекты\Предприятия\Dbf\akt.dbf'
where date1 is not null
order by     2,3

а если пытаюсь сгрупировать (group by 2,3) он выдает ошибку "Invalid use on key word"

Ребят может кто даст ссылку на на русский хелт по sql (для Delphi 7 и BDE)?


Stanislav   (2006-11-24 17:07:00) [12]

Jeer ©   (24.11.06 16:49) [15]
и еще перейти на Access...
чтобы работало как у Savek   (23.11.06 18:21) [2].


Jeer   (2006-11-24 16:49:00) [13]

Переписать таблицу.
Поля: год полугодие квартал месяц день час минута секунда... пикосекунда.


ANB   (2006-11-24 16:44:00) [14]


> Надо конкретно смотреть.

Ну дык я и грю - залезть в хелп, потом попробовать. автору вообще надо сначала найти способ выдернуть месяц с годом


Anatoly Podgoretsky   (2006-11-24 16:09:00) [15]

> ANB  (24.11.2006 15:37:12)  [12]

Не знаю как Оракл, но это вещь очень сильно зависимая от сервера.
Одни позволяют алиас, другие только номер, третьи требуют повторения выражения в части GROUP/ORDER

Надо конкретно смотреть.


ANB   (2006-11-24 15:37:00) [16]


> Anatoly Podgoretsky ©   (24.11.06 13:22) [11]

Оракл тоже не разрешает использовать алиасы вычисленных запросом полей использовать в предложении group by. Что легко обходится либо вложением запросов либо группировкой по вычисляемому выражению.


Anatoly Podgoretsky   (2006-11-24 13:22:00) [17]

> sniknik  (24.11.2006 13:07:10)  [10]

Справка говорит

Note Derived values (calculated values) cannot be used as the basis for a GROUP BY clause.

Но автор может сам проверить все три варианта.


sniknik   (2006-11-24 13:07:00) [18]

> база DBF IV, работаю через bde
с указания что используется надо начинать, все от этого зависит

можно попробовать
select date1-(EXTRACT(DAY FROM date1)-1) AS GrDate, Sum(sumall) AS sumall from таблица.dbf
group by GrDate

или в группировке указать 0 (индекс поля в списке), либо прям все вычисление... ну не помню я синтаксиса Local Sql.


ANB   (2006-11-24 12:03:00) [19]


>
> Константин_   (24.11.06 09:22) [7]

Залезь в хелп по локал скл и посмотри. У меня оракл.


ЮЮ   (2006-11-24 10:02:00) [20]


> есть таблица формата
> sumall,date1 с данными


Неужели именно в такую таблицу пользователи заносят данные?

Гуппировать надо все данные из таблицы? Или ещё отбирать перед группировкой надо?


Страницы:   1 2

Наверх

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