Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 17:31 25.04.24 
Клубове/ Компютри и Интернет / Бази данни Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Първата NOT NULL стойност от група записи
Автор VladoVasilev (минаващ)
Публикувано30.06.06 12:18  



Здравейте!
Имам следната таблица TBL_LOGS(ID INTEGER NOT NULL, CHANGED DATE NOT NULL, STATUS INTEGER, TYPE CHAR(3)) и следните примерни данни в нея:

SELECT * FROM TBL_LOGS ORDER BY ID, CHANGED ASC;

ID CHANGED STATUS TYPE
--------------------------------------------------------------
1 | 28.06.2006 17:18:51 | |
1 | 28.06.2006 18:34:31 | 2 |
1 | 28.06.2006 19:00:01 | 3 | ABC
1 | 29.06.2006 08:12:22 | -1 | SUC
2 | 28.06.2006 09:47:54 | | SUC
2 | 28.06.2006 11:05:06 | |
2 | 28.06.2006 14:33:29 | | UER
--------------------------------------------------------------

Трябва ми заявка, която за всяко различно ID да извлича по един запис,
така че в него да има колоната ID, първата стойност на колоната STATUS за съответната група от еднакви ID-та,
която не е NULL или ако няма такава - [-10], както и първата стойност на колоната TYPE за съответната група от еднакви ID-та, която не е NULL или ако няма такава - NULL. Под "първата" имам впредвид наредба по CHANGED в нарастващ ред за съответната група ID-та или "ORDER BY CHANGED ASC"
Или за конкретния пример, заявката трябва да бъде :

SELECT ID, SOME_FUNC_NOT_NULL_STATUS(), SOME_FUNCT_NOT_NULLTYPE()
FROM TBL_LOGS GROUP BY ID;
и очаквания резултат е :

ID STATUS TYPE
--------------------------------------------------------------
1 2 ABC
2 -10 SUC
--------------------------------------------------------------

Аз пробвах с аналитични функции от рода на FIRST_VALUE(STATUS) over (ORDER BY CHANGED ASC), но не можах да игнорирам NULL-стойностите. Много важна подробност е версията - ползвам Oracle9.....четох че в Oracle10 има FIRST_VALUE(COLUMN_NAME IGNORE NULLS), което щеше да ми даде точно желания резултат, но за жалост не мога да го използвам. Помагайте!

Редактирано от VladoVasilev на 30.06.06 12:20.



Цялата тема
ТемаАвторПубликувано
* Първата NOT NULL стойност от група записи VladoVasilev   30.06.06 12:18
. * Re: Първата NOT NULL стойност от група записи wqw   30.06.06 13:48
. * Re: Първата NOT NULL стойност от група записи VladoVasilev   30.06.06 15:21
. * Re: Първата NOT NULL стойност от група записи wqw   30.06.06 18:08
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.