Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.26;
Скачать: CL | DM;

Вниз

SLQ   Найти похожие ветки 

 
Dennis I. Komarov ©   (2009-02-26 17:30) [0]

Не делфи, но все же:

Пусть есть некий запрос результат готорого имеет вид:
ID, Date, Sum

Вопрос: как найти сумму последнего (по дате) для каждого ID
т.е.
SELECT ID, max(Date)
.....
GROUP BY ID

SELECT ID, max(Date), Sum - не выполняется (думается и не должна)

СУБД ORA 10G


 
KSergey ©   (2009-02-26 17:33) [1]

т.е. ID не уникальны, а уникальны только в связке в Data?


 
KSergey ©   (2009-02-26 17:34) [2]

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


 
Palladin ©   (2009-02-26 17:35) [3]

Если первый запрос - тоже группировка, то его можно слегка дополнить условием

date=(select max(date) from tbl as tbl_alias where tbl_alias.id=tbl.id)


 
Petr V. Abramov ©   (2009-02-26 17:36) [4]

select last_value(sum) over (partition by ID order by Date)
не проверял, но что-то около этого


 
Palladin ©   (2009-02-26 17:36) [5]

Хотя если первый запрос и не группировка - то его тоже ничто не мешает дополнить тем же самым условием :)


 
Dennis I. Komarov ©   (2009-02-26 17:41) [6]

[1] совершенно верно
[2],[3] там не группировка, там join c кучей условий where
не хотелось второй раз его же
[4] не совсем понял структуру - сейчас поэксперементирую


 
Palladin ©   (2009-02-26 17:45) [7]


> Dennis I. Komarov ©   (26.02.09 17:41) [6]

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


 
Petr V. Abramov ©   (2009-02-26 17:48) [8]


> Dennis I. Komarov ©   (26.02.09 17:41) [6]

см. Analytic functions в документации


 
Dennis I. Komarov ©   (2009-02-26 17:53) [9]


> Palladin ©   (26.02.09 17:45) [7]

угу ;) сейчас пару операторов, ну программистов в смысле поднапрягу.... :)

как говориться, чем больше знаешь, тем больше узнаешь как много ты еще не знаешь. Вот я и подумал, может чего еще в SQL есть такого...


 
Palladin ©   (2009-02-26 18:54) [10]


> Dennis I. Komarov ©   (26.02.09 17:53) [9]

Ну хорошо, есть еще выход с временной таблицей первичных результатов )


 
Dennis I. Komarov ©   (2009-02-27 09:30) [11]

прицепил еще один join :)
всем мерси...

2 > Palladin ©   (26.02.09 17:45) [7]
Я вчера не совсем понял про ручной труд :) *SORRY*


 
Petr V. Abramov ©   (2009-02-27 13:08) [12]


> Dennis I. Komarov ©   (27.02.09 09:30) [11]

ну и зря
разберись с last_value лучше
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions073.htm#i83648


 
Dennis I. Komarov ©   (2009-02-27 16:43) [13]


> Petr V. Abramov ©   (27.02.09 13:08) [12]

непременно, но не сейчас ;)



Страницы: 1 вся ветка

Текущий архив: 2009.04.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
3-1219997680
quart
2008-08-29 12:14
2009.04.26
SQL в Infromix


15-1235555828
KilkennyCat
2009-02-25 12:57
2009.04.26
No royalties.


15-1235553818
DVM
2009-02-25 12:23
2009.04.26
Работа программиста - это сон?!


15-1235652901
Максим
2009-02-26 15:55
2009.04.26
ADOConnection не видит базы созданные на SQL сервере


2-1236562614
GrieVeR-13
2009-03-09 04:36
2009.04.26
Как через API функции отследить вращение колеса мыши?