![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
групировка в sql запросе [D7, dBase, FoxPro]
Константин_ © (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 с данными
Неужели именно в такую таблицу пользователи заносят данные?
Гуппировать надо все данные из таблицы? Или ещё отбирать перед группировкой надо?