Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выбор записи по дате в интервале / 19 сообщений из 19, страница 1 из 1
12.07.2018, 12:42
    #39673062
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Доброго времени суток уважаемые профессионалы!
Мне нужна ваша помощь!

Задача:

Есть таблица транзакции:
account trans_date trans_sum sd123 01.02.2012 120.00 sd123 02.02.2012 120.00 sd124 01.02.2012 500.00 sd124 01.02.2012 245.00 sd124 01.02.2012 361.00 sd124 02.02.2012 854.00 sd124 02.02.2012 111.00 sd125 01.02.2012 119.00 sd125 01.02.2012 456.00 sd125 01.02.2012 325.00 ... ......

Надо вытащит любую транзакцию по условий account in(sd123, sd124, sd125) and trans_date between '01.02.2012' and 02.02.2012.

Результат должен быть:
account trans_date trans_sum sd123 01.02.2012 120.00 sd123 02.02.2012 120.00 sd124 01.02.2012 500.00 sd124 02.02.2012 854.00 sd125 01.02.2012 119.00 ... ......

т.е. одна запись по account и trans_date.

Мне кое кто подсказал, но не могу использовать:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select *
from (select account,
             trans_date,
             rank() over (partition by account order by trans_date) as r_rank
        from transaction_arh         
        where account in ('sd123', 'sd124', 'sd125')
           and trans_date between to_date('01.02.2012', 'dd.mm.yyyy') and to_date('05.02.2012', 'dd.mm.yyyy')
)
where r_rank = 1



Заранее спасибо!
...
Рейтинг: 0 / 0
12.07.2018, 12:44
    #39673066
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Alimkulov,

что и почему вам мешает использовать то, что подсказал кое-кто ? что-нибудь ещё кое-кто подсказывает, чтобы можно было использовать?
...
Рейтинг: 0 / 0
12.07.2018, 12:46
    #39673067
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Будь проще:
Код: sql
1.
2.
3.
4.
5.
6.
select account, trans_date, max(trans_sum)
from transaction_arh
where account in ('sd123', 'sd124', 'sd125')
    and trans_date between to_date('01.02.2012', 'dd.mm.yyyy') and to_date('05.02.2012', 
'dd.mm.yyyy')
group by account, trans_date


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.07.2018, 12:47
    #39673070
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Alimkulov,

возможно, вам сюда
...
Рейтинг: 0 / 0
12.07.2018, 12:49
    #39673074
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Alimkulov,

а в чем отличие от этого
кроме двух лет между постами ?
...
Рейтинг: 0 / 0
12.07.2018, 13:29
    #39673114
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Щукина АннаAlimkulov,

что и почему вам мешает использовать то, что подсказал кое-кто ? что-нибудь ещё кое-кто подсказывает, чтобы можно было использовать?

Это вообще по другому ведет себя:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select *
from (select account,
             trans_date,
             rank() over (partition by account order by trans_date) as r_rank
        from transaction      
        where account in ('sd123', 'sd124', 'sd125')
           and trans_date between to_date('01.02.2012', 'dd.mm.yyyy') and to_date('05.02.2012', 'dd.mm.yyyy')
)
where r_rank = 1
...
Рейтинг: 0 / 0
12.07.2018, 13:31
    #39673117
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
123ййAlimkulov,

а в чем отличие от этого
кроме двух лет между постами ?

Большое отличие!
...
Рейтинг: 0 / 0
12.07.2018, 13:33
    #39673120
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Dimitry Sibiryakov,
А можно первую записью, а не max(trans_sum)?
...
Рейтинг: 0 / 0
12.07.2018, 13:40
    #39673126
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Dimitry Sibiryakov,
...
Рейтинг: 0 / 0
12.07.2018, 13:53
    #39673134
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Alimkulov,

Так что ли надо?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select *
from (select account,
             trans_date,
             rank() over (partition by account, trans_date order by trans_date) as r_rank
        from transaction_arh         
        where account in ('sd123', 'sd124', 'sd125')
           and trans_date between to_date('01.02.2012', 'dd.mm.yyyy') and to_date('05.02.2012', 'dd.mm.yyyy')
)
where r_rank = 1
...
Рейтинг: 0 / 0
12.07.2018, 13:54
    #39673135
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
MaximaXXL,

Даже точнее так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select *
from (select account,
             trans_date,
             rank() over (partition by account, trunc(trans_date) order by trans_date) as r_rank
        from transaction_arh         
        where account in ('sd123', 'sd124', 'sd125')
           and trans_date between to_date('01.02.2012', 'dd.mm.yyyy') and to_date('05.02.2012', 'dd.mm.yyyy')
)
where r_rank = 1
...
Рейтинг: 0 / 0
12.07.2018, 13:56
    #39673138
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
AlimkulovDimitry Sibiryakov,
А можно первую записью, а не max(trans_sum)?
а почему она не первая?
ну min(trans_sum) лучше?
...
Рейтинг: 0 / 0
12.07.2018, 13:57
    #39673139
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Это FIRST/LAST же: FIRST/LAST
...
Рейтинг: 0 / 0
12.07.2018, 13:58
    #39673141
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Это FIRST/LAST же: FIRST/LAST
...
Рейтинг: 0 / 0
12.07.2018, 14:03
    #39673144
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
AlimkulovА можно первую записью

Можно, но ты же сам просил любую .
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.07.2018, 14:20
    #39673158
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
MaximaXXLMaximaXXL,

Даже точнее так:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select *
from (select account,
             trans_date,
             rank() over (partition by account, trunc(trans_date) order by trans_date) as r_rank
        from transaction_arh         
        where account in ('sd123', 'sd124', 'sd125')
           and trans_date between to_date('01.02.2012', 'dd.mm.yyyy') and to_date('05.02.2012', 'dd.mm.yyyy')
)
where r_rank = 1



Точно так. Вы просто молодцы! Спасибо большое!
...
Рейтинг: 0 / 0
12.07.2018, 14:36
    #39673162
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Вот результат:
...
Рейтинг: 0 / 0
12.07.2018, 14:38
    #39673163
MaximaXXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
Alimkulov,

а trunc таки забыли хотя может в Вашем случае и не актуально, но все же
...
Рейтинг: 0 / 0
12.07.2018, 14:54
    #39673173
Alimkulov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор записи по дате в интервале
MaximaXXL,
да точно!
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Выбор записи по дате в интервале / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]