SELECT company,
pay_term_id,
description,
day_to,
MAX(CASE WHEN rn = 1 THEN disc_days_cnt END) AS disc_days_cnt1,
MAX(CASE WHEN rn = 2 THEN disc_days_cnt END) AS disc_days_cnt2,
MAX(CASE WHEN rn = 3 THEN disc_days_cnt END) AS disc_days_cnt3,
MAX(CASE WHEN rn = 1 THEN disc_percent END) AS disc_precent1,
MAX(CASE WHEN rn = 2 THEN disc_percent END) AS disc_precent2,
MAX(CASE WHEN rn = 3 THEN disc_percent END) AS disc_precent3
FROM (
SELECT ptd.company,
ptd.pay_term_id,
pte.description,
pt.day_to,
ptd.disc_days_cnt,
ptd.disc_percent,
ROW_NUMBER() OVER (PARTITION BY ptd.company, ptd.pay_term_id ORDER BY ptd.disc_days_cnt) AS rn
FROM Payment_Term_Disc ptd
JOIN PAYMENT_TERM_DETAILS pt
ON ptd.company = pt.company and ptd.pay_term_id = pt.pay_term_id and ptd.installment_number = pt.installment_number
JOIN PAYMENT_TERM pte
ON ptd.company = pte.company and ptd.pay_term_id=pte.pay_term_id
) a
GROUP BY company,pay_term_id, description, day_to
ORDER BY company;
0 Comments