0

私はこのコードを書きました

SELECT  

cast(isnull(x.hc,'') AS VARCHAR(500)) as A,

Case
When cast(isnull(p.dg,'') AS VARCHAR(500)) = '0' then ''
else cast(isnull(p.dg,'') AS VARCHAR(500))
End as B, 

Case
When cast(isnull(h.cno,'') as varchar(500)) = '0' then ''
else cast(isnull(h.cno,'') as varchar(500))
End as C, --added

cast(isnull(p.vol,0) as varchar(500)) as D,

cast(isnull(p.weigh,0) as varchar(500)) as E

FROM ship g
inner join S_M d on d.ship_id = g.ship_id
left join Pack h on h.ship_id = g.ship_id
left join pack_d p on p.pack_id = h.pack_id
left join comm x on x.comm_id = p.comm_id
WHERE g.ship_pk = @ship_pk 
GROUP BY  cast(isnull(x.hc,'') AS VARCHAR(500)), cast(isnull(p.dg,'') AS VARCHAR(500)), cast(isnull(h.cno,'') as varchar(500)), cast(isnull(p.vol,0) as varchar(500)), cast(isnull(p.weigh,0) as varchar(500)) 

次のような出力が得られます

A     B      C        D        E

123   Yes    AB456    26.34    28.45
123   Yes    AB687    26.34    28.45
125   No     AB794    22.58    24.36
125   No     AB456    22.58    24.36
125   No     AB687    22.58    24.36

出力を次のように取得できるように、上記のコードを変更するにはどうすればよいですか

A     B      C        D        E

123   Yes    AB456    26.34    28.45
             AB687    26.34    28.45
125   No     AB794    22.58    24.36
             AB456    22.58    24.36
             AB687    22.58    24.36

上記のように、テーブルの最初の 2 つの列から重複した値を削除するにはどうすればよいですか? ここで行を削除するのではなく、重複する値を削除してそのフィールドを空白のままにします。

どうやってやるの?

4

0 に答える 0