2013-02-22 136 views
0

我有一个限制,我只能在任何时候向报告应用程序发送一个结果集,以便为客户生成结束报告。SQL结果集合并

所以这样

select 
    [AGENT], 
    [TRANSDATE], 
    [RECIPT NO], 
    [CUSTOMER NAME], 
    [ORDER NO] , 
    [TRANS NO] , 
    QUANTITY, 
    [AMOUNT COST], 
From [Customer] C 

查询但是我需要大量的在底部总计像这样的查询一些列。由于它是传统的报告应用程序,因此我无法对前端进行任何更改。

select 
    Sum (QUANTITY) as [SUM OF QUANTITY] , 
    Sum (AMOUNT COST) AS [SUM OF AMOUNT COST] 
From [Customer] C 

显然我简化了我正在使用的查询。所以问题是如何让2个结果集在SQL中设置一个结果集?

Unionunion all因日期列为默认值而失败,如果在最终应用程序中对列使用空白。

RollupPivoting或CTE我有点想到但看不到解决方案。

+1

你们是不是要行添加到结果与总计设置的底部或你不介意增加更多的列到结果集? – 2013-02-22 11:42:39

+0

仅需要2个字段的总数。总计需要被添加到结果集的底部。我认为目前不可能,但请保持开放。 – 2013-02-22 11:56:00

+0

不在这种情况下,这是不可能的。您可能需要添加一行并'使用'两个现有的列以使您的新值进入并忽略其余的值,或者需要将总列添加到每一行(即每行的值相同) – 2013-02-22 12:00:55

回答

2

窗口函数呢?

像...

select 

[AGENT], 

[TRANSDATE], 

[RECIPT NO], 

[CUSTOMER NAME], 

[ORDER NO] , 

[TRANS NO] , 

QUANTITY, 

[AMOUNT COST], 

Sum (QUANTITY) over() as [SUM OF QUANTITY] , 

Sum ([AMOUNT COST]) over() AS [SUM OF AMOUNT COST] 


From [Customer] C