Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
15-1235131897
dumka
2009-02-20 15:11
2009.04.26
Конференция


4-1208784022
leonidus
2008-04-21 17:20
2009.04.26
Как узнать размер exe из него же?


6-1202570010
Kerk
2008-02-09 18:13
2009.04.26
Connection Timeout у TTCPClient


2-1237123155
бобик
2009-03-15 16:19
2009.04.26
позиция курсора


2-1236623891
programmer90
2009-03-09 21:38
2009.04.26
AnsiToOem, CharToOem





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский