![]() |
|
Модераторы: skyboy |
![]()
|
|
| KAV2008 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Здравствуйте помогите пожалуйста с запросом
Таблица TAG - содержит часовые параметры CREATE TABLE TAG ( TAG_ID INTEGER NOT NULL, //идентификатор параметра VAL FLOAT(126), //значение REVISION DATE NOT NULL ) //дата и время (по часам) Необходимо сделать группировку следующего вида REVISION_1 REVISION_2***REVISION_24 TAG_ID_1 val val TAG_ID_2 val val TAG_ID_3 val val ,,,, TAG_ID_N Или в перевернутом виде значения в базу добавляються каждый час |
|||
|
||||
| KAV2008 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Поясню таблицу в более наглядном виде
1:00 2:00 3:00 параметр 53 (наприм расход) знач знач знач параметр 54 (наприм температура) знач знач знач SELECT a1.tag_id, a1.val, a1.revision FROM tag a1 where (a1.REVISION BETWEEN TO_DATE('07/20/2009 08:00:00', 'MM/DD/YYYY HH24:MI:SS') AND TO_DATE('07/20/2009 20:00:00', 'MM/DD/YYYY HH24:MI:SS')) что добавить в запрос что бы сгруппировать данные, group by a1.revision - не помогает Пожалуйста помогите |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Укажите СУБД.
Поддерживает ли она перекрёстные запросы? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
группировка подразумевает аггрегацию Как вы собираетесь аггрегировать значения в группе? я так понимаю оракля?
Запрос возвратит суммы значений по часам в сутках на дату для каждого тэга. Что вам нужно на самом деле - неведомо. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| KAV2008 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
База данных Oracle 9
таблица в базе выглядит вот так TAG_ID VAL REVISION 152 29 07.20.2009 08:00:00 153 1 07.20.2009 08:00:00 155 4 07.20.2009 08:00:00 154 5 07.20.2009 08:00:00 152 30 07.20.2009 09:00:00 153 1 07.20.2009 09:00:00 155 2 07.20.2009 09:00:00 154 3 07.20.2009 09:00:00 152 30 07.20.2009 10:00:00 153 1 07.20.2009 10:00:00 155 6 07.20.2009 10:00:00 154 7 07.20.2009 10:00:00 152 30 07.20.2009 11:00:00 153 1 07.20.2009 11:00:00 155 1 07.20.2009 11:00:00 154 1 07.20.2009 11:00:00 т.е по одному значению на каждый час |
|||
|
||||
| KAV2008 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Огромное спасибо за помощь Результат запроса следующий TAG_ID DAY 1:00 2:00 3:00 152 08.03.2008 00:00:00 25 25 24 152 08.04.2008 00:00:00 22 21 21 152 08.05.2008 00:00:00 22 22 22 152 08.06.2008 00:00:00 25 24 24 152 08.07.2008 00:00:00 25 25 0 152 08.08.2008 00:00:00 25 25 24 PS в запросе не хватает правой скобки select TAG_ID ,trunc(REVISION) day ,sum(decode(to_char(REVISION,'HH24'),'01',val)) "1:00" ,sum(decode(to_char(REVISION,'HH24'),'02',val)) "2:00" ,sum(decode(to_char(REVISION,'HH24'),'03',val)) "3:00" . . . ,sum(decode(to_char(REVISION,'HH24'),'23',val)) "23:00" from TAG group by TAG_ID,trunc(REVISION) С благодарностью |
|||
|
||||
| KAV2008 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Здравствуйте
Прошу Вашей помощи по этой же теме вопроса запрос тот же select TAG_ID ,trunc(REVISION) day , sum (val) sum --добавлен подсчет суммы за сутки ,sum(decode(to_char(REVISION,'HH24'),'01',val)) "1:00" ,sum(decode(to_char(REVISION,'HH24'),'02',val)) "2:00" ,sum(decode(to_char(REVISION,'HH24'),'03',val)) "3:00" . . . ,sum(decode(to_char(REVISION,'HH24'),'23',val)) "23:00" from TAG group by TAG_ID,trunc(REVISION) Требуеться подсчитать не только сумму за сутки общую, но сумму за определенные часы, например с 8 до 20 и 1 до 8 плюс с 21 до 24 , т.е. по сменам подскажите как дополнить запрос С благодарностью |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
|
|||
|
||||
| KAV2008 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Большое спасибо
Вес работает!!! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
|
|||
|
||||
| KAV2008 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 26.6.2008 Репутация: нет Всего: нет |
Спасибо за замечание
теперь буду знать как вставлять код |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |