Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.008 c
15-1235535200
Урсулапов_
2009-02-25 07:13
2009.04.26
Изменение даты и времени создания файла


2-1236556497
Юнец
2009-03-09 02:54
2009.04.26
Получить html тег


15-1235256218
alex-drob
2009-02-22 01:43
2009.04.26
Проэктирование сервера для обмена пакетами двух пользователей


2-1235722033
Scot Storch
2009-02-27 11:07
2009.04.26
Добавление в базу


15-1235328760
KilkennyCat
2009-02-22 21:52
2009.04.26
Музыка из 30-х..70-х годов




   Наверх