首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求共计总额的存储过程.

2012-08-11 
求合计总额的存储过程.CREATE PROCEDURE b_test @YCLRKH varchar(10),@GCRCLMLH varchar(15),@CKDM int,@F

求合计总额的存储过程.
CREATE PROCEDURE b_test @YCLRKH varchar(10),@GCRCLMLH varchar(15),@CKDM int,@FPHM varchar(10)
 AS
begin
select a.YCLRKH,a.SL,a.ZZL,a.JE,sum(a.JE)as CJE, a.GCRCLMLH,a.CKDM,b.GCMC,b.FPHM as FPHM ,b.FPJE, c.LJMC,c.TZCC,c.CLPH,c.JH from BCPRKTZB a left join JGCHSJB b on a.BCPSLDID=b.BCPSLDID left join CLB c on a.RKXH=C.RKXH
where (a.YCLRKH like '%' + @YCLRKH+ '%' or @YCLRKH='')
and (a.GCRCLMLH like '%' + @GCRCLMLH+ '%' or @GCRCLMLH='')
and (b.FPHM like '%' + @FPHM+ '%' or @FPHM='')
and(a.CKDM = +convert(varchar(10),@CKDM) or @CKDM<0 )
end
GO
 

有三张表
表A
RKXH YCLRKH SL ZZL JE GCRCLMLH BCPSLDID
 1 A01 5 2 2 AA 1
 2 A02 2 5 3 BB 2
 3 A03 1 2 5 CC 2
表B
 GCMC FPHM FPJE
  A1 AA1 1
  B1 BB1 1
  C1 CC1 1
表C
RKXH LJMC 
1 TA1
2 TB2
3 TC3


希望得到的结果是:
RKXH YCLRKH SL ZZL JE GCRCLMLH  GCMC FPHM FPJE LJMC
 1 A01 5 2 2 AA A1 AA1 1 TA1
 2 A02 2 5 3 BB B1 BB1 1 TB2
 3 A03 1 2 5 CC C1 CC1 1 TC3
合计:       9  10

主要是最后一行的合计,我不知如何写,现在如果我像上面红色标的那样.得到的合计是列,而我要的合计是增加一行.不如何实现.





[解决办法]

SQL code
CREATE PROCEDURE b_test @YCLRKH varchar(10),@GCRCLMLH varchar(15),@CKDM int,@FPHM varchar(10) ASbeginselect ltrim(a.YCLRKH)YCLRKH,a.SL,a.ZZL,a.JE,sum(a.JE)as CJE, a.GCRCLMLH,a.CKDM,b.GCMC,b.FPHM as FPHM ,b.FPJE, c.LJMC,c.TZCC,c.CLPH,c.JH from BCPRKTZB a left join JGCHSJB b on a.BCPSLDID=b.BCPSLDID left join CLB c on a.RKXH=C.RKXHwhere (a.YCLRKH like '%' + @YCLRKH+ '%' or @YCLRKH='')and (a.GCRCLMLH like '%' + @GCRCLMLH+ '%' or @GCRCLMLH='')and (b.FPHM like '%' + @FPHM+ '%' or @FPHM='')and(a.CKDM = +convert(varchar(10),@CKDM) or @CKDM<0 )union allselect '合计:','','',sum(a.JE), sum(a.GCRCLMLH),'','',''  ,'', '','','','' from BCPRKTZB a left join JGCHSJB b on a.BCPSLDID=b.BCPSLDID left join CLB c on a.RKXH=C.RKXHwhere (a.YCLRKH like '%' + @YCLRKH+ '%' or @YCLRKH='')and (a.GCRCLMLH like '%' + @GCRCLMLH+ '%' or @GCRCLMLH='')and (b.FPHM like '%' + @FPHM+ '%' or @FPHM='')and(a.CKDM = +convert(varchar(10),@CKDM) or @CKDM<0 )endGO 

热点排行