Вниз
Скачать: 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.024 c
3-1087888566
sergg
2004-06-22 11:16
2004.07.18
Создание механизма авторизации пользователей


4-1086271924
Jiny
2004-06-03 18:12
2004.07.18
Работа с LTP и дельфи (микроконтроллеры)


1-1088882723
oleg_SYS
2004-07-03 23:25
2004.07.18
HTML из буфера обмена


9-1075890529
AlexT1000
2004-02-04 13:28
2004.07.18
Как найти все сервера игры в лок.сети через DirectPlay8


6-1084958538
Darik
2004-05-19 13:22
2004.07.18
Как отправить файл по E-mail?




   Наверх