나는 트랜잭션을 저장하고 계정 잔액을 결정하기 위해 "버킷"방법을 사용하는 레거시 데이터가있는 데이터베이스를 가지고 있습니다. 나는 계정을 위해 만기가 된 연체 될 방법이 필요합니다.SQL 버킷 나이 그룹 결정
표 거래
는 TransactionId
TransactionType (CHARGE, 영수증)
금액
시간적으로
현재의 균형을 얻으려면 :
SELECT SUM(CASE TransactionTypeId WHEN RECEIPT THEN Amount * -1 ELSE Amount END) CurrentBalance
내가 30 연체 결정하는 방법이 필요를, 60, 90, 120 등 :
계정 C urrent 30 60 90 120 +
12345 $ 50.00 내가 별도의 쿼리를 실행하는 등, 각 그룹에 대해 실행하고 다른 사람을 뺀, 충전보다 큰 30,60,90,120에 postdates 제한하지만, 얻을 수없는 시도 $ 0.00 $ 25.00 $ 25.00 $ 0.00
예상 된 결과.
테이블에 지난 기한에 대한 플래그가 저장되지 않고 모든 잔액이 즉시 계산됩니다.
나는 간단한 것을 놓치고 있습니까? net 검색을 시도했지만이 유형의 SQL 쿼리에 대한 용어가 있는지 확실하지 않습니다.
데이터베이스가 도움이되면 데이터베이스입니다.
TIA는
@Andomar - 최근에 도착 영수증 (지난 30 일 즉)에 PastDue30 금액에서 차감한다 - 어쩌면 그냥 지난 30 일에 _charges_을 제외? - 그들은 아직 연체되지 않았습니다. –
@martin clayton : "연체 만료"는 아직 지불되지 않은 30 일 이전 요금입니다. 당신은'when' 절을 교환함으로써 SQL에서 그것을 계산할 수 있습니다. 내가 대답을 추가 할께 – Andomar
그렇게 생각하고 좋은 해결책, +1. –