1
ITMBPS 세부 정보 값이 아래로 복사 될 때 두 부분의 BOMSEQ_0, CPNITMREF_0, YREF_0 및 TEXTE_0에 대한 값을 null로 만들려고합니다.SQL - 중복 된 특정 값을 null로 바꾸는 방법
SELECT B.BOMSEQ_0, case when B1.ITMREF_0 IS NOT NULL then NULL else B.CPNITMREF_0 end as CPNITREF, case when B1.ITMREF_0 IS NOT NULL then NULL else B.YREF_0 end as YREF, case when B1.ITMREF_0 IS NOT NULL Then NULL else CONVERT(varchar(255), T.TEXTE_0) end as TEXTE, case when B1.CPNITMREF_0 IS NOT NULL then NULL else I.YSTOFCY_0 end as YSTOFCY, case when B1.CPNITMREF_0 IS NOT NULL then NULL else I.PIO_0 end as PIO, case when B1.CPNITMREF_0 IS NOT NULL then NULL else I.BPSNUM_0 end as BPSNUM, case when B1.CPNITMREF_0 IS NOT NULL then NULL else I.ITMREFBPS_0 end as ITMREFBPS,
B1.BOMSEQ_0, B1.CPNITMREF_0, B1.YREF_0, CONVERT(varchar(255), T.TEXTE_0) as TEXTE2, I.YSTOFCY_0, I.PIO_0, BPSNUM_0, I.ITMREFBPS_0
FROM [BOMD] B
INNER JOIN [BOMD] B1
ON B.CPNITMREF_0=B1.ITMREF_0
AND B.BOMALT_0=B1.BOMALT_0
LEFT JOIN [TEXCLOB] T
ON B1.BOMTEXNUM_0=T.CODE_0
INNER JOIN [ITMBPS] I
ON B1.CPNITMREF_0=I.ITMREF_0
WHERE B.ITMREF_0='50'
and B.BOMALT_0= 1
UNION ALL
SELECT B.BOMSEQ_0, B.CPNITMREF_0, B.YREF_0, CONVERT(varchar(255), T.TEXTE_0), I.YSTOFCY_0, I.PIO_0, I.BPSNUM_0, I.ITMREFBPS_0,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
FROM [BOMD] B
LEFT JOIN [TEXCLOB] T
ON B.BOMTEXNUM_0=T.CODE_0
INNER JOIN [ITMBPS] I
ON B.CPNITMREF_0=I.ITMREF_0
WHERE B.ITMREF_0='50'
and B.BOMALT_0= 1
ORDER BY B.BOMSEQ_0, B1.BOMSEQ_0, YSTOFCY, YSTOFCY_0, PIO, PIO_0
지연을 사용해 보았지만 제대로 작동하지 않는 것 같습니다. 편집 : 예제 데이터 및 결과 (약간 짧아도 맞지만 잘하면 당신은 아이디어를 얻을 수 있습니다).
BOMD
ITMREF_0 CPNITMREF_0 BOMSEQ_0 BOMALT_0 YREF_0 BOMTEXNUM
50 120-001 1 1 F1 1
50 112-001 2 1 F2
50 110-001 3 1 F3
112-001 113-001 1 1 P2
112-001 113-002 2 1 P3 2
50 120-001 1 2 D1
50 112-001 2 2 D2
50 110-001 3 2 D3
112-001 113-001 1 2 Q2
112-001 113-004 2 2 Q3
TEXTCLOB
CODE_0 TEXTE_0
1 F1-10
2 P3-10
ITMBPS
ITMREF_0 YSTOFCY_0 BPSNUM_0 PIO_0
120-001 UK UK001 0
120-001 GER GER001 2
112-001 UK UK002 0
112-001 GER GER002 2
110-001 GER GER002 0
113-001 GER GER002 0
113-001 UK UK001 2
113-002 UK UK003 0
원하는 결과
BOMSEQ CPNITMREF YREF BOMTEXNUM BPSNUM BOMSEQ CPNITMREF YREF BTEX BPSNUM
1 120-001 F1 F1-10 UK001 NULL NULL NULL NULL NULL
NULL NULL NULL NULL GER001 NULL NULL NULL NULL NULL
2 112-001 F2 NULL UK002 NULL NULL NULL NULL NULL
NULL NULL NULL NULL GER002 NULL NULL NULL NULL NULL
NULL NULL NULL NULL NULL 1 113-001 P2 NULL GER002
NULL NULL NULL NULL NULL NULL NULL NULL NULL UK001
NULL NULL NULL NULL NULL 2 113-002 P3 P3-10 UK003
3 110-001 F3 NULL GER002 NULL NULL NULL NULL NULL
어떤 아이디어가? 감사합니다.
아마도 예제 데이터와 예상되는 결과를 제공 할 수 있습니다. 또한 문제를 적절히 표시하는 데 필요한 최소한의 코드로 변경하는 것이 유용 할 수 있습니다. https://stackoverflow.com/help/how-to-ask –
특히 내 마음을 읽는 사람이 수리점에있을 때 어떤 데이터의 이점이 없이는 의미가 무엇인지 알 수 없다는 말 그대로 불가능합니다. –
죄송합니다. 작동해야하는 몇 가지 예제 데이터를 추가했습니다. 원하는 결과를 약간만 제한해야했습니다. 여전히 혼란 스럽다면 코드를 제한 할 것입니다. 도와 줘서 고마워. – Sab