Получение данных за прошлый год, только если одна запись за последний месяц - PullRequest
1 голос
/ 28 декабря 2011

У меня есть две таблицы

USER и TRANSACTION

Я хочу выбрать данные из таблицы TRANSACTION за последний год, если USER совершил какую-либо транзакцию за последний месяц

USER и TRANSACTION таблицы связаны с использованием USER_ID

как это может быть достигнуто?

Ответы [ 2 ]

1 голос
/ 28 декабря 2011
select 
  trx_detail_1,
  trx_detail_2
from ( 
  select sum(
           case when trx_date > add_months(sysdate, -1) then 1 else 0 end
         ) over (partition by user_id) sum_user_last_month,
         trx_detail_1,
         trx_detail_2
     from 
         transaction
     where
         trx_date > add_months(sysdate, -12)
)
where 
     sum_user_last_month > 0;
1 голос
/ 28 декабря 2011

список транзакций за последний год для пользователей, активных за последний месяц:

(вам не нужна таблица USERS)

SELECT * 
FROM
TRANSACTIONS
WHERE transaction_date > sysdate - interval '1' year
  and user_id in 
    (select user_id
     from TRANSACTIONS
     where transaction_date > sysdate - interval '1' month);
...