Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Нужна помощь в создании запроса.  [new]
nikonn
Member

Откуда:
Сообщений: 8
Существует таблица с полями:

ID                         NUMBER NOT NULL,
DESCRIPTION              VARCHAR2(500),
ITEM_ID                     NUMBER NOT NULL,
DATE                         DATE.

Записей много (>20000). Основная проблема вот в чем... В день записей может быть несколько, а нужно сформировать запрос, который бы считал кол-во записей за день в интервал времени (дата-дата). Тоесть на выходе должна была бы получится информация вида - (01.01.2011 - 23, 02.01.2011 - 12 итд), не именно так, но что-то в этом роде. Всю голову сломал, а перебирать ArrayList с огромным кол-вом объектов по 3 000 000 раз не хочется) Хотя бы скажите в какую сторону смотреть.
20 сен 11, 21:18    [11308763]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
nikonn,

пишу по памяти, оракла нет, так что могут быть опечатки
select day,(select count(0) from t t1 where trunc(t1."DATE")=t2.day) cnt
  from  (select date '2011-01-01'+level-1 day from dual connect by level <=2) t2;
где t Ваша таблица.
20 сен 11, 21:40    [11308821]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
nikonn
Member

Откуда:
Сообщений: 8
SQLQuery q = this.getSession().createSQLQuery("SELECT date, COUNT(*) FROM hold WHERE " +
				"Date_productive > To_Date('" + f.format(startDate) + "', 'DD.MM.YYYY HH24:MI') AND " +
				"Date_productive < To_Date('" + f.format(endDate) + "', 'DD.MM.YYYY HH24:MI') AND " + 
				"GROUP BY date " +
				"ORDER BY date asc ");
		list.add(q.list());

Что делаю не так? Насколько я понял он должен подсчитывать количество записей для каждой даты. Но он этого не делает, просто для каждой даты проставляет единицу. Получается лист с объектами вида (date = dd.MM.yyyy; Number = 1)....Или я не правильно понял агрегатные функции...
20 сен 11, 23:16    [11309041]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
-2-
Member

Откуда:
Сообщений: 15330
nikonn
Или я не правильно понял агрегатные функции...
Или что такое "дата".
20 сен 11, 23:33    [11309067]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
nikonn
Member

Откуда:
Сообщений: 8
Либо строчное представление вроде dd/MM/yyyy hh:mm, либо в миллисекундах с 1 января 1970года если память не изменяет. Что не правильно то?))) Или оно так не будет работать вообще?
20 сен 11, 23:59    [11309109]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
-2-
Member

Откуда:
Сообщений: 15330
nikonn
Либо строчное представление вроде dd/MM/yyyy hh:mm, либо в миллисекундах с 1 января 1970года
Нельзя быть настолько тупым и заниматься программированием. После достаточно прямого указания уже можно было страничку sql reference прочитать и задуматься, вместо философского гадания на тему DATE.
21 сен 11, 00:11    [11309121]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
nikonn
Member

Откуда:
Сообщений: 8
Нельзя быть настолько нервным и таким "не тупым". Хочешь показать какой ты умный и как у тебя развито собственное Я? Иди в другое место. Надеюсь это достаточно прямое указание для тебя.
21 сен 11, 00:45    [11309165]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
nikonn
Нельзя быть настолько нервным и таким "не тупым". Хочешь показать какой ты умный и как у тебя развито собственное Я? Иди в другое место. Надеюсь это достаточно прямое указание для тебя.


ведите себя прилично. правила форума читали?
почитайте.
21 сен 11, 01:05    [11309187]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
pavel_nv
Member

Откуда: NV -> SpB
Сообщений: 265
nikonn,

Сначала запрос напиши рабочий, а потом запихивай его в программу. Так проще будет.
21 сен 11, 08:57    [11309455]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
publexus
Member

Откуда: Москва
Сообщений: 955
nikonn,

Во-первых, используй связываемые переменные.
Во-вторых, группировать надо по суткам (trunc(date,'dd')), а не по дискретным засечкам времени.
В-третьих, шо за AND перед GROUP BY?
21 сен 11, 09:23    [11309531]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь в создании запроса.  [new]
publexus
Member

Откуда: Москва
Сообщений: 955
nikonn, забыл добавить

В-четвертых, включай мосх!
21 сен 11, 09:26    [11309538]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить