EDITED: уточните запрос на обновление. Как я могу объединить две строки, которые будут отображаться как одна строка в запросе, как показано ниже:
SELECT pp.polmain_key
,MAX(CASE WHEN sub_risk2.rown = 1 THEN sub_risk2.ptdcoverrequired00 ELSE NULL END) ptdcoverrequired00
,MAX(CASE WHEN sub_risk2.rown = 2 THEN sub_risk2.ptdcoverrequired00 ELSE NULL END) ptdcoverrequired01
,MAX(CASE WHEN sub_risk2.rown = 1 THEN sub_risk2.ptdfixedsumins00 ELSE NULL END) ptdfixedsumins00
,MAX(CASE WHEN sub_risk2.rown = 2 THEN sub_risk2.ptdfixedsumins00 ELSE NULL END) ptdfixedsumins01
FROM table1 pp
LEFT JOIN (SELECT pp.polmain_key
,MAX(CASE WHEN pab.question_key IN ( 405) THEN pab.answer_text ELSE NULL END) ptdcoverrequired00
,MAX(CASE WHEN pab.question_key IN (25338) THEN pab.answer_text ELSE NULL END) ptdfixedsumins00
,pp.section_ref
,pp.risk_ref
,pp.sub_risk_ref
,ROW_NUMBER() OVER (PARTITION BY pp.section_ref ORDER BY NULL) rown
,COUNT(*) OVER (PARTITION BY pp.risk_ref) cnt
,ROW_NUMBER() OVER (PARTITION BY pp.sub_risk_ref ORDER BY NULL) pos
FROM table1 pp
LEFT JOIN table2 pab
ON pp.policy_part_key = pab.policy_part_key
AND pab.question_key IN (25338,405)
WHERE pp.policy_part_level_key = 3
AND pp.product_sub_risk_key = 65724
GROUP BY pp.polmain_key
,pp.section_ref
,pp.risk_ref
,pp.sub_risk_ref
ORDER BY pp.polmain_key
,pp.section_ref
,pp.risk_ref
,pp.sub_risk_ref
) sub_risk2
ON pp.risk_ref = sub_risk2.risk_ref
WHERE pp.policy_part_level_key = 2
AND pp.product_risk_key = 65722
GROUP BY pp.polmain_key
,sub_risk2.rown
,sub_risk2.ptdcoverrequired00
,sub_risk2.ptdfixedsumins00
ORDER BY pp.polmain_key
;
Результаты, которые у меня есть, такие:
"POLMAIN_KEY" "PTDCOVERREQUIRED00" "PTDCOVERREQUIRED01" "PTDFIXEDSUMINS00" "PTDFIXEDSUMINS01"
"1003245353" "Fixed Sum Insured (£)" "" "3000.00" ""
"1003245353" "" "Multiple of Salary" "" "40.00"
"1003267567" "Fixed Sum Insured (£)" "" "50000.00" ""
"1003267576" "Fixed Sum Insured (£)" "" "50000.00" ""
"1003270623" "Fixed Sum Insured (£)" "" "50000.00" ""
"1003270631" "Fixed Sum Insured (£)" "" "50000.00" ""
И я хотел бы добиться что-то вроде этого:
"POLMAIN_KEY" "PTDCOVERREQUIRED00" "PTDCOVERREQUIRED01" "PTDFIXEDSUMINS00" "PTDFIXEDSUMINS01"
"1003245353" "Fixed Sum Insured (£)" "Multiple of Salary" "3000.00" "40.00"
"1003267567" "Fixed Sum Insured (£)" "" "50000.00" ""
"1003267576" "Fixed Sum Insured (£)" "" "50000.00" ""
"1003270623" "Fixed Sum Insured (£)" "" "50000.00" ""
"1003270631" "Fixed Sum Insured (£)" "" "50000.00"
Есть ли какой-нибудь простой способ изменить существующий запрос, чтобы он возвращал такие результаты?