이벤트 테이블과 트랜잭션 로그가 있습니다. 그리고 각 이벤트의 총 수익을 하나의 SQL로 계산합니다. 어떻게해야하는지 알려줄 수 있습니까?
트랜잭션 테이블에 100,000 개가 넘는 로그가 있습니다.postgreSQL에서 다른 테이블의 데이터 사용
event_table :
Event_id | start_date | end_date
------------------------
11111 | 2013-01-04 | 2013-01-05
11112 | 2013-01-08 | 2013-01-10
11113 | 2013-01-11 | 2013-01-12
11114 | 2013-01-15 | 2013-01-18
11115 | 2013-01-19 | 2013-01-21
11116 | 2013-01-22 | 2013-01-24
11117 | 2013-01-26 | 2013-01-29
transaction_log :
나는 다음과 같이 SQL을 사용하려고id | name | time_created | Cost
------------------------
1 | michael | 2013-01-04 | 1
2 | michael | 2013-01-08 | 4
3 | mary | 2013-01-11 | 5
4 | john | 2013-01-15 | 2
5 | michael | 2013-01-19 | 3
6 | mary | 2013-01-22 | 2
7 | john | 2013-01-26 | 4
하지만 작동하지 않습니다.
select
event_table.id,
(select sum(Cost)
from transaction_log
where date(time_created) between transaction_log.start_date and transaction_log.end_date) as revenue
from event_table
당신은 DTO가 작동하지 않는 _how_, 당신이 등을 기대하고 있었는지 설명해야합니다. – renemilk
다른 테이블에 재고가있는 기간을 사용하여 하나의 테이블 데이터를 합산하려고했습니다. 나는 "join on (xx 사이의 xx)"을 사용할 수 있다는 것을 결코 깨닫지 못했습니다. 해결되었습니다. 고마워요! –