仅在上个月的单个记录时检索去年的数据

时间:2011-12-28 10:17:01

标签: sql oracle date-arithmetic

我有两张桌子

USERTRANSACTION

如果TRANSACTION在上个月进行了任何交易,我想从USER表中选择最近一年的数据

USERTRANSACTION表格使用USER_ID

进行关联

如何实现?

2 个答案:

答案 0 :(得分:1)

列出去年上个月活跃用户的交易记录:

(您不需要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);

答案 1 :(得分:1)

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;