如何在mssql存储过程中的#table列中求和 [英] how to sum in #table column in mssql store procedure

查看:88
本文介绍了如何在mssql存储过程中的#table列中求和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我不知道如何在临时表中总结其中一列(TOTAL)



Hi

I do not know how to sum one of the column (TOTAL) in temp table

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[usp_Customer_Due_Until_Now]
 @Code nvarchar(30)
AS
BEGIN

SET NOCOUNT ON;
select code as Code, Name as Name, sum(Nett) SINETT into #tableSI  From SIHead Where Code=@code Group By Code,Name
select code as Code, Name as Name, sum(-Nett) SINETT into #tableSR  From SRHead Where Code=@code Group By Code,Name
select code as Code, Name as Name, sum(-ChqAmount) SINETT into #tableRC  From RCHead Where Code=@code Group By Code,Name
select code as Code, Name as Name, sum(Nett) SINETT  into #tableDN  From DNHead  Where Code=@code Group By Code,Name
select code as Code, Name as Name, sum(-Nett) SINETT  into #tableCN  From CNHead Where Code=@code Group By Code,Name

select code,name,SUM(SINETT) AS TOTAL from #tableSI GROUP BY CODE,NAME
UNION
select code,name,SUM(SINETT) AS TOTAL from #tableSR GROUP BY CODE,NAME
UNION
select code,name,SUM(SINETT) AS TOTAL from #tableRC GROUP BY CODE,NAME
UNION
select code,name,SUM(SINETT) AS TOTAL from #tableDN GROUP BY CODE,NAME
UNION
select code,name,SUM(SINETT) AS TOTAL from #tableCN GROUP BY CODE,NAME
drop table #tableSI
drop table #tableSr
drop table #tablerc
drop table #tableDN
drop table #tableCN
END





当前结果是



Current Result is

CODE    NAME                     TOTAL    

DT001 	DAKNA TRADING SDN BHD	-96545.61
DT001 	DAKNA TRADING SDN BHD	-1590
DT001 	DAKNA TRADING SDN BHD	-689
DT001 	DAKNA TRADING SDN BHD	1060
DT001 	DAKNA TRADING SDN BHD	94263.21





请告诉我如何在单身总和行



请帮帮我。



Maideen



pls advice me how to sum total in single line

Pls help me.

Maideen

推荐答案

试试这个...



Try this ...

select t1.code,t1.name,(SUM(t1.SINETT)+SUM(t2.SINETT)+SUM(t3.SINETT)+SUM(t4.SINETT)SUM(t5.SINETT)) AS TOTAL from #tableSI t1 
inner join #tableSR t2 on t1.code=t2.code
inner join #tableRC t3 on t1.code=t3.code
inner join #tableDN t4 on t1.code=t4.code
inner join #tableCN  t5 on t1.code=t5.code


您可以将结果包装在CTE中,然后用它来计算总数像这样:

You can wrap your results in a CTE and then use it to sum the totals like this:
with results as
(
  select code,name,SUM(SINETT) AS TOTAL from #tableSI GROUP BY CODE,NAME
  UNION
  select code,name,SUM(SINETT) AS TOTAL from #tableSR GROUP BY CODE,NAME
  UNION
  select code,name,SUM(SINETT) AS TOTAL from #tableRC GROUP BY CODE,NAME
  UNION
  select code,name,SUM(SINETT) AS TOTAL from #tableDN GROUP BY CODE,NAME
  UNION
  select code,name,SUM(SINETT) AS TOTAL from #tableCN GROUP BY CODE,NAME
)
select * from results
union all
select '' as code, 'grand total' as name, sum(total) as total from results



这将给你这个结果:


This will give you this result:

code  name                  total
----- --------------------- ---------------------------------------
DT001 DAKNA TRADING SDN BHD -96545.61
DT001 DAKNA TRADING SDN BHD -1590.00
DT001 DAKNA TRADING SDN BHD -689.00
DT001 DAKNA TRADING SDN BHD 1060.00
DT001 DAKNA TRADING SDN BHD 94263.21
      grand total           -3501.40


这篇关于如何在mssql存储过程中的#table列中求和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆