-1
私は2つのタブを持っています。最初は、あるタイプのディスカウントを開始したときのデータ(8種類のディスカウントがありますが、2つのカテゴリに分けています)です。割引は6ヶ月有効ですが、毎月減少し、割引の開始日はすべての人に異なります。 2番目の表にはトランザクションがあります。グループ別、別の日付
最初の1ヶ月目のディスカウントと2番目のカテゴリの人が最初の1ヶ月目、2回目にどのくらいの取引をしたかを知りたい。あなたの必要性を理解しようと
SELECT (CASE WHEN Trunc(Months_Between(A.DATE_TRANS, B.DATA_DISCOUNT))=0 THEN 0
WHEN Trunc(Months_Between(A.DATE_TRANS, B.DATE_DISCOUNT))=1 THEN 1
WHEN Trunc(Months_Between(A.DATE_TRANS, B.DATE_DISCOUNT))=2 THEN 2
WHEN Trunc(Months_Between(A.DATE_TRANS, B.DATE_DISCOUNT))=3 THEN 3
WHEN Trunc(Months_Between(A.DATE_TRANS, B.DATE_DISCOUNT))=4 THEN 4
WHEN Trunc(Months_Between(A.DATE_TRANS, B.DATE_DISCOUNT))=5 THEN 5
END)
AS MONTH,
CASE WHEN A.TYPE IN (5,6,7,8) THEN COUNT(A.PRICE)
END AS COUNT_TRANS_1,
CASE WHEN A.TYPE IN (5,6,7,8) THEN SUM(A.PRICE)
END AS SUM_PRICE_1,
CASE WHEN A.TYPE IN (1,2,3,4) THEN COUNT(A.PRICE)
END AS COUNT_TRANS_2,
CASE WHEN A.TYPE IN (1,2,3,4) THEN SUM(A.PRICE)
END AS SUM_PRICE_2
from DATABASE_1 A join DATABASE_2 B
on A.ID=B.ID
where Trunc(Months_Between(A.DATE_TRANS, B.DATE_DISCOUNT)) IN (0,1,2,3,4,5)
GROUP BY A.ID, MONTH
サンプルデータと希望の結果を投稿して、必要が明確になるようにしてください。他の人の中で、なぜ「いつまで(A.DATE_TRANS、B.DATE_DISCOUNT)= 1 THEN 1? 'Trunc(Months_Between(A.DATE_TRANS、B.DATE_DISCOUNT))'と同じではありませんか? – Aleksej