我数据库中有10个字段吧,表如下:filed1,filed2,filed,3,filed4,filed5,filed6,filed7,filed8,year,month这样的。我想显示成这样的:
select filed1,filed2,filed3,filed4,file,5,filed6,file7,filed8,filed22,filed44,filed66 where...其中select filed1,filed2,filed3,filed4,file,5,filed6,file7,filed8这几个字段是条件为上个月的。filed22,filed44,filed66 这几个字段是上上个月的(这三个字段是从新起的名字)必须有一个名字,谢谢! ̄ ̄
select filed1,filed2,filed3,filed4,file,5,filed6,file7,filed8,filed22,filed44,filed66 where...其中select filed1,filed2,filed3,filed4,file,5,filed6,file7,filed8这几个字段是条件为上个月的。filed22,filed44,filed66 这几个字段是上上个月的(这三个字段是从新起的名字)必须有一个名字,谢谢! ̄ ̄
如果显示上个月的数据的时候 FILED22这些字段为空吗??
field222是不是就是上上上个月啊?
select * from
(select dy_dcsw,lj_dcsw,dy_zr,lj_zr,dy_zr_qz,lj_zr_qz,dy_zc,
j_zc,dy_sdl,lj_sdl,dy_sdl_qz,lj_sdl_qz,dy_xsdl,lj_xsdl,
dy_xsl,lj_xsl,dy_xsl_ys,lj_xsl_ys,
--要求显示上个月的字段
lag(lj_dcsw , 1, 0) over(order by year||month) as lj_dcsw1 ,
lag(lj_zr , 1, 0) over(order by year||month) as lj_zr1 ,
lag(lj_zr_qz , 1, 0) over(order by year||month) as lj_zr_qz1 ,
lag(lj_zc , 1, 0) over(order by year||month) as lj_zc1 ,
lag(lj_sdl , 1, 0) over(order by year||month) as lj_sdl1 ,
lag(lj_sdl_qz, 1, 0) over(order by year||month) as lj_sdl_qz1,
lag(lj_xsdl , 1, 0) over(order by year||month) as lj_xsdl1 ,
lag(lj_xsl , 1, 0) over(order by year||month) as lj_xsl1 ,
lag(lj_xsl_ys, 1, 0) over(order by year||month) as lj_xsl_ys1
--要求显示上上个月的字段
from table_name
where year || month >= to_char(add_months(sysdate,-2),'yyyymm')
and year || month <= to_char(add_months(sysdate,-1),'yyyymm')
)
where year || month = to_char(add_months(sysdate,-1),'yyyymm')
where year = to_char(add_months(sysdate,-1),'yyyy') and month = to_char(add_months(sysdate,-1),'mm')