+ -
当前位置:首页 → 问答吧 → 求助!

求助!

时间:2011-12-26

来源:互联网

SQL code

--有tb_mxsj,存储所有年度的项目数据。
KJND    YSKMDM    YSKMMC            XMMC                        JE
2011     2010101   KM1                XM1                    20000
......
2012    2010101   KM2                MX2                    30000
.......

--tb_yskm,按年度存储了每个年度的预算科目。
KJND    FZDM    FZMC    
2011     101      KM101
2011     10101    KM10101
......
2012     101      KM101
.........
                        

通过以下语句来得到的TBA,但是这样统计预算科目金额为0的科目就不会显示了,求帮助?
select A.kjnd 年度,a.fzdm+a.fzmc 科目,ISNULL(SUM(B.je),0) 金额
  from #tb_yskm as a
    left join #tb_mxsj as b
    on b.yskmdm like a.fzdm+'%'
  where len(a.fzdm)=3 
        AND A.KJND=B.KJND
  group by A.kjnd,a.fzdm,a.fzmc
  order by A.kjnd,a.fzdm

以上SQL得到的结果:
KJND    科目                                                  金额
2011    110转移性收入                                            1186112605
2011    201一般公共服务                                          902192918.3
2012    201一般公共服务                                          56120500
2012    206科学技术                                              7500

但我想得到的结果是所有科目的信息,如果没有,金额就显示0:
KJND    科目                                                  金额
2011     101税收收入                                            0
....
2011    110转移性收入                                            1186112605
2011    201一般公共服务                                          902192918.3
2011    203国防                                                  33768657.14
2011    204公共安全                                              794999241.5
....
2012     101税收收入                                            0
....



作者: xl_smlie   发布时间: 2011-12-26

try:
SQL code
select A.kjnd 年度,a.fzdm+a.fzmc 科目,ISNULL(SUM(B.je),0) 金额
  from #tb_yskm as a
    left join #tb_mxsj as b
    on b.yskmdm like a.fzdm+'%'
  and len(a.fzdm)=3 
        AND A.KJND=B.KJND
  group by A.kjnd,a.fzdm,a.fzmc
  order by A.kjnd,a.fzdm



楼下请勿复制!

作者: qianjin036a   发布时间: 2011-12-26

SQL code
select A.kjnd 年度,a.fzdm+a.fzmc 科目,ISNULL(SUM(B.je),0) 金额
  from #tb_yskm as a
    left join #tb_mxsj as b 
    on A.KJND=B.KJND and b.yskmdm like a.fzdm+'%'
  where len(a.fzdm)=3 
          group by A.kjnd,a.fzdm,a.fzmc
  order by A.kjnd,a.fzdm


作者: ssp2009   发布时间: 2011-12-26

引用 1 楼 qianjin036a 的回复:
try:

SQL code
select A.kjnd 年度,a.fzdm+a.fzmc 科目,ISNULL(SUM(B.je),0) 金额
from #tb_yskm as a
left join #tb_mxsj as b
on b.yskmdm like a.fzdm+'%'
and len(a.fzdm)=3
AND A.KJND……
木有复制

作者: ssp2009   发布时间: 2011-12-26