补充:
效果为:
年          月          ID         名称                   借方          贷方          借方合计    贷方合计
---------- ---------- ---------- -------------------- ----------- ---------------------- -----------2009       03         5101       主营业务收入               1400        0       2800             0
2009       03         5101001    主营业务收入-1             1400        0     2800            0
2009       03         510100101  主营业务收入-1-1           800         0    1600           0
2009       03         510100102  主营业务收入-1-2           600         0   1200           0
2009       03         5401       A主营业务收入              1400        0     2800           0
2009       03         5401001    A主营业务收入-1            1400        0    2800           0
2009       03         540100101  A主营业务收入-1-1          700         0    1400         0
2009       03         540100102  A主营业务收入-1-2          700         0    1400         0

解决方案 »

  1.   


    出来的效果为: 
    年          月          ID        名称                  借方          贷方          借方合计    贷方合计 
    ---------- ---------- ---------- -------------------- ----------- ---------------------- ----------- 2009      03        5101      主营业务收入              1400        0      2800            0 
    2009      03        5101001    主营业务收入-1            1400        0    2800            0 
    2009      03        510100101  主营业务收入-1-1          800        0    1600          0 
    2009      03        510100102  主营业务收入-1-2          600        0  1200          0 
    2009      03        5401      A主营业务收入              1400        0    2800          0 
    2009      03        5401001    A主营业务收入-1            1400        0    2800          0 
    2009      03        540100101  A主营业务收入-1-1          700        0    1400        0 
    2009      03        540100102  A主营业务收入-1-2          700        0    1400        0 
      

  2.   

    select *
    into #taoistong
    from 
    (select 年,月,substring(科目ID,1,4) 科目ID,sum(借方) 借方, sum(贷方) 贷方 from 凭证表
    group by 年,月,substring(科目ID,1,4)
    union all 
    select 年,月,substring(科目ID,1,7) 科目ID,sum(借方) 借方, sum(贷方) 贷方 from 凭证表
    group by 年,月,substring(科目ID,1,7)
    union all 
    select 年,月,科目ID,借方, 贷方 from 凭证表) aselect a.*
    ,(select sum(借方) from  #taoistong b where a.科目ID=b.科目ID) 借方
    ,(select sum(贷方) from  #taoistong b where a.科目ID=b.科目ID) 贷方
    from #taoistong a
    order by 1,2,3才看明白,可以么
      

  3.   

    现在我即要累计本月数据,又要累计本年数据的SQL语句怎么写把你上面的结果放到一个临时表中,然后group by 年,月 with rollup示例DECLARE @t TABLE(Groups char(2),Item varchar(10),Color varchar(10),Quantity int)
    INSERT @t SELECT 'aa','Table','Blue', 124
    UNION ALL SELECT 'bb','Table','Red',  -23
    UNION ALL SELECT 'bb','Cup'  ,'Green',-23
    UNION ALL SELECT 'aa','Chair','Blue', 101
    UNION ALL SELECT 'aa','Chair','Red',  -90--汇总显示
    SELECT Groups=CASE 
    WHEN GROUPING(Color)=0 THEN Groups
    WHEN GROUPING(Groups)=1 THEN '总计'
    ELSE '' END,
    Item=CASE 
    WHEN GROUPING(Color)=0 THEN Item
    WHEN GROUPING(Item)=1 AND GROUPING(Groups)=0 THEN Groups+' 合计'
    ELSE '' END,
    Color=CASE 
    WHEN GROUPING(Color)=0 THEN Color
    WHEN GROUPING(Color)=1 AND GROUPING(Item)=0 THEN Item+' 小计'
    ELSE '' END,
    Quantity=SUM(Quantity)
    FROM @t
    GROUP BY Groups,Item,Color WITH ROLLUP
    /*--结果
    Groups Item       Color           Quantity    
    -------- ---------------- ---------------------- ----------- 
    aa     Chair      Blue            101
    aa     Chair      Red             -90
                     Chair 小计       11
    aa     Table      Blue            124
                     Table 小计       124
           aa 合计                    135
    bb     Cup        Green           -23
                      Cup 小计        -23
    bb     Table      Red             -23
                     Table 小计       -23
           bb 合计                    -46
    总计                              89
    --*/