db2 在SQL中合并两个相似的行

oaxa6hgo  于 2022-12-18  发布在  DB2
关注(0)|答案(1)|浏览(188)

我想将TPMDE 8 where TPTTYP = 'AU'列中的空白空间与TPMDE 8 where TPTTYP='U'合并,如下所示
| 测试类型|日联|自|CEL语言|布福尔|艺术|波Git|TPMDE8|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 美国|小行星222037038|高度基准PS 0-0-0|巴布亚新几内亚K1 1-2-3| PNG01IN01|小行星27923||二二一二一四一三○八|
| Au|小行星222037038|高度基准PS 0-0-0|巴布亚新几内亚K1 1-2-3| PNG01IN01|小行星27923| 2022年12月14日13时09分42秒||
是否可以使用SQL完成此操作,并且在最终查询中,当where TPTTYP='AU'时,我可以看到这两个值?
我希望它看起来像这样:
| 测试类型|日联|自|CEL语言|布福尔|艺术|波Git|TPMDE8|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|
| Au|小行星222037038|高度基准PS 0-0-0|巴布亚新几内亚K1 1-2-3| PNG01IN01|小行星27923| 2022年12月14日13时09分42秒|二二一二一四一三○八|
完整查询

select tpttyp, TPLENR as JL, (tpvber|| ' ' || tpvreg|| '-' ||tpvhor|| '-' ||tpvver) as Z,
(tpnber|| ' ' || tpnreg|| '-' ||tpnhor|| '-' ||tpnver) as na,
TPPPLZ as bufor,
trim(tpiden) as art, 
(to_date(right('00' || TPTSTA,2) || '-' || right('00' || TPTSMO,2) || '-' || TPTSJH || right('00' || TPTSJA,2) || right('00' || tptsst,2) || ':' || right('00' ||tptsmi ,2) || ':' || right('00'|| tptsse ,2),'DD/MM/YYYY HH24:MI:SS')) as Podjete,
tpmde8

from xyz
where
...
efzxgjgh

efzxgjgh1#

假定行通过JL列值相关。

WITH XYZ (TPTTYP, JL, PODJETE, TPMDE8) AS 
(
  VALUES 
    ('U',   222037038, NULL, 2212141308)
  , ('AU',  222037038, '14-12-2022 13:09:42', NULL)
)
SELECT AU.TPTTYP, AU.JL, AU.PODJETE, U.TPMDE8
FROM XYZ AU
JOIN XYZ U ON U.JL = AU.JL
WHERE AU.TPTTYP = 'AU' AND U.TPTTYP = 'U'

| 测试类型|日联|波Git|TPMDE8|
| - ------|- ------|- ------|- ------|
| Au|小行星222037038| 2022年12月14日13时09分42秒|二二一二一四一三○八|

相关问题