У меня есть две таблицы
[stg]. [VBAP]
SELECT distinct [VBELN]
,[POSNR]
FROM [stg].[VBAP]
VBELN POSNR
0180011720 000010
и у меня есть вторая таблица VBPA
SELECT [VBELN]
,[POSNR]
,[PARVW]
,[KUNNR]
FROM [stg].[VBPA]
VBELN POSNR PARVW KUNNR
0180011720 000000 AG 0000506980
0180011720 000000 RE 0000506980
0180011720 000000 RG 0000506980
0180011720 000000 WE 0000506980
0180011720 000000 ZF 0000106790
0180011720 000000 ZU 0000505497
0180011720 000010 ZF 0000108579
0180011720 000010 ZU 0000506980
Мне нужно создатьсводная таблица между двумя таблицами, чтобы получить, например, как результат. Например, для PARVW = 'ZU' у меня есть два значения для [KUNNR], я должен принять значение, когда Posn <> 0
что я пытаюсь
with VBPA_CTE ([VBELN],KUNNR,POSNR,PARVW,id)
as(
Select T3.[VBELN],T3.KUNNR ,T3.POSNR ,T3.PARVW
,row_number() over (partition by [PARVW] order by [POSNR] desc )as id
from (
SELECT distinct T1.[VBELN]
,T1.[POSNR]
,T2.[PARVW]
,T2.[KUNNR]
FROM [stg].[VBAP] T1
LEFT JOIN ( select [VBELN]
,[POSNR]
,[PARVW]
,[KUNNR]
FROM [stg].[VBPA]) T2
ON T1.[VBELN]=T2.[VBELN]) T3
where T3.[VBELN] = '0180011720 '
)
SELECT [VBELN]
,[POSNR]
,[AG]
,[RE]
,[RG]
,[WE]
,[ZU]
FROM VBPA_CTE
PIVOT (
max(VBPA_CTE.[KUNNR])
FOR VBPA_CTE.[PARVW] IN ([AG],[RE],[RG],[WE],[ZU])
) p
where id=1
Я не понял, как связать обе таблицы в одном запросе и как использовать условие, когда [POSNR] <> 0?