Вниз
Скачать: CL | DM;

Помогите составить запрос на Oracle   Найти похожие ветки 

 
vlgrig1961   (2004-06-23 08:25) [0]

Здравствуйте уважаемые знатоки Оракла.
Помоги составить SQL запрос:
есть таблица с разными датами, надо выбрать по одной записи
на дату <= текущей (т.е. последние данные)

Nomer   Data      Summa
------  ------    ------
1       01.01.04  100
1       11.01.04  150
1       02.02.04  350
2       20.01.04  500
2       28.02.04  600
3       31.12.03  1560
3       01.02.04  2300

Выбрать на дату <= 01.02.04
1       11.01.04  150
2       20.01.04  500
3       01.02.04  2300

Можно ли такое сделать ?


 
Sergey13 ©   (2004-06-23 08:38) [1]

select nomer,summa,min(sysdate-data)
from table
group by 1,2


 
Johnmen ©   (2004-06-23 09:37) [2]

SELECT * FROM Table T1
WHERE T1.Date=(SELECT MAX(T2.Date) FROM Table T2 WHERE (T1.Nomer=T2.Nomer) AND (T2.Date<=01.02.04)


 
asp ©   (2004-06-23 09:41) [3]

Что значит "по одной записи"? По одной в каком наборе (nomer, data, summa)?


 
Жук ©   (2004-06-23 10:19) [4]


> Johnmen ©   (23.06.04 09:37) [2]

А если записей с макс.датой больше 1 ?


 
Johnmen ©   (2004-06-23 10:33) [5]

>Жук ©   (23.06.04 10:19) [4]
>А если записей с макс.датой больше 1 ?

Ну, естественно, и получим больше 1. Что не противоречит постановке вопроса...
:)
Но телепатически вдумавшись в вопрос, предполагаю, что не может быть более 1 платежа за дату.


 
Sergey13 ©   (2004-06-23 10:42) [6]

Мой первый пост - фигня. Поторопился в знатоки. 8-)

select t1.* from test t1,
(select nomer,max(data) data
from test
where data<=to_date("01.02.04")
group by nomer) t2
where t1.nomer=t2.nomer and t1.data=t2.data

В принципе очень похоже на [2], но статистика (без индексов) вроде чуть лучше.

2Жук ©   (23.06.04 10:19) [4]
>А если записей с макс.датой больше 1 ?
Значит будет больше 1. 8-)



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

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



Память: 0.46 MB
Время: 0.022 c
3-1087732998
a125
2004-06-20 16:03
2004.07.18
как восстановить файл PARADOX


3-1088146105
Bless
2004-06-25 10:48
2004.07.18
Row cannot be located for updating. Some values may have been cha


1-1089144177
whitespider
2004-07-07 00:02
2004.07.18
Как связаться с Маткадом


3-1088071800
чайник1
2004-06-24 14:10
2004.07.18
Копирование ячейки


14-1088489357
AndrewK
2004-06-29 10:09
2004.07.18
Помогите, пожалуйста, придумать название программе




   Наверх