为啥我的结果集没有为每一列生成总和?
Posted
技术标签:
【中文标题】为啥我的结果集没有为每一列生成总和?【英文标题】:Why my result set doesn't produce sum for each column?为什么我的结果集没有为每一列生成总和? 【发布时间】:2015-03-11 07:49:19 【问题描述】:我一直在处理 sql 查询并尝试生成一个新行,显示它下面每一列的总和。
我马上就收到了
DateTime 10Quantity 20Quantity 30Quantity 10Amount 20Amount 30Amount GrandTotal
03/10/2015 792 0 594 7920 0 17820 25740
03/10/2015 332 3 194 9990 0 28220 38739
但我希望将其作为输出:
DateTime 10Quantity 20Quantity 30Quantity 10Amount 20Amount 30Amount GrandTotal
03/10/2015 792 0 594 7920 0 17820 25740
03/10/2015 332 3 194 9990 0 28220 38739
Totals 1124 3 788 17910 0 46040 64479
SP:即使我尝试了 GROUPING SETS,但未能实现。请帮忙。
ALTER PROCEDURE [dbo].[ReportDenominationWiseTransaction] '03-10-2015', '03-10-2015'
@FromDate date,
@ToDate date
AS
BEGIN
with myquery ([DateTime],amount,Quantity)
as
(
select Convert(varchar(20),serverdatetime,101) 'DateTime',amount,1 'Quantity'
from tickets
WHERE CONVERT(DATE,ServerDateTime) BETWEEN @FromDate and @ToDate
)
select *, 10 * c.[10Quantity] '10Amount',20 * c.[20Quantity] '20Amount',30 * c.[30Quantity] '30Amount',((10 * c.[10Quantity])+(20 * c.[20Quantity])+(30 * c.[30Quantity]))'GrandTotal' from (
SELECT DateTime,[10] AS '10Quantity', [20] AS '20Quantity', [30] AS '30Quantity'
FROM
(SELECT [DateTime], amount,quantity
FROM myquery) p
PIVOT
(
COUNT ([Quantity])
FOR [Amount] IN
( [10], [20], [30])
) AS pvt
) as c
END
【问题讨论】:
:Your previous question here。使用 sql 查询GROUPING SETS
并将该结果绑定到 GridView
。 My previous answer here.
先生,我尝试分组集,但都搞砸了,没有任何效果,可能是我错误地合并了,你能帮帮我吗?
为什么不使用 UNION ALL?因此,只需生成第一个结果表(因为您已经拥有它,然后使用 UNION ALL 将总和添加到底部。
计算总和(小计),总和(TotalDue);
【参考方案1】:
像这样尝试..
CREATE TABLE #tmpRes
(
DateTime varchar(50),
10Quantity varchar(50),
20Quantity varchar(50),
10Quantity varchar(50),
10Quantity varchar(50),
10Amount varchar(50),
20Amount varchar(50),
30Amount varchar(50),
GrandTotal varcahr(50)
)
INSERT INTO #tmpRes(col1,col2,....)
SELECT cols1,col2,..
FROM my_table
INSERT INTO #tmpRes(col1,col2,....)
SELECT 'Totals',sum(10Quantity ),sum(20Quantity ).......
FROM my_table
select * from #tmpRes
【讨论】:
以上是关于为啥我的结果集没有为每一列生成总和?的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE怎么把查询出来的结果集的每条记录的每一列用逗号分隔,一条记录完后用分号分隔