星期六

一条汇总的sql

如下表:
STCD              ZA   ZB
010010110   NULL
0100102NULL 13
010020115   NULL
0100202NULL 10

只有 substring(STCD,6,2)='01' 的情况下才有ZA的值,
只有 substring(STCD,6,2)='02' 的情况下才有ZB的值。

现在想把 left(STCD,5) 相同的纪录取出,而且要把 substring(STCD,6,2)='01' 的 ZA 值要插入到 substring(STCD,6,2)='02' 的 ZA 中,然后去掉 substring(STCD,6,2)='01'的行,最终结果:

STCD        ZA    ZB
01001       10    13
01002   15    10

select STCD,(select ZA from t where left(STCD,5)= t1.STCD and ZA>0) as ZA ,(select ZB from t where left(STCD,5)= t1.STCD and ZB>0) as ZB
from (select DISTINCT left(STCD,5) as STCD from t) as t1

posted on 2006-08-28 18:08  星期六  阅读(158)  评论(0编辑  收藏  举报