with test as (
select '1' as yf,'k1' as ks,'y1' as ys,1 as sl from dual
union all
select '1' as yf,'k2' as ks,'y2' as ys,2 as sl from dual
union all
select '2' as yf,'k2' as ks,'y2' as ys,1 as sl from dual
union all
select '2' as yf,'k3' as ks,'y3' as ys,6 as s1 from dual
)
select ks,ys,max(decode(yf,'1',sl,0)) as yy,max(decode(yf,'2',sl,0)) as ey from test group by ks,ys order by ks
SELECT T.KESHI, T.YS, SUM(CASE WHEN MYMON = 1 THEN YSCOUNT ELSE NULL END) AA,SUM(CASE WHEN MYMON = 2 THEN YSCOUNT ELSE NULL END) BB
FROM TESTTABLE T
GROUP BY T.KESHI,T.YS