2015-09-05 65 views
0

我有這樣總和多列的

ID  Score 1  Score 2  Sum  Average 
1  5   5   10  5 
2  7   6   13  6.5 
3  4   8   12  6 
.  .   .   .  . 
.  .   .   .  . 
.  .   .   .  . 
Total 16   19  35  17.5 

我有Score 1Score 2的報告,但我需要得到SumAverage,並通過Total Stimulsoft。

我怎樣才能用sum來獲得每列中兩列的總和?

回答

1

希望這SQL查詢幫助:

Select CAST(ID AS VARCHAR(10)) AS [ID], Score1, Score2, (Score1 + Score2) AS [SUM], ((Score1 + Score2)/2) AS [AVG] from Yourtable 
UNION ALL 
Select 'Total', SUM(Score1), SUM(Score2), SUM((Score1 + Score2)), SUM(((Score1 + Score2)/2)) from Yourtable 

您也可以看看computed column對於如果經常使用的查詢總數和平均數列。

1

由於沒有人似乎回答,我會試試這個。我不確定你需要什麼是一個SQL查詢或Stimulsoft諮詢。我會嘗試前者:

Select cast(id as varchar(max)), score1, score2, score1+score2 as sum, (CONVERT(DECIMAL(10,2),score1)+score2)/2 as average 
from yourtable 
UNION ALL 
Select 'Total', (select sum(score1) from yourtablename) as Score1Total,(select sum(score2) from yourtablename) as Score2Total, (select sum(score1)+sum(score2) from yourtablename) as TotalSum, (select (CONVERT(DECIMAL(10,2),sum(score1))+sum(score2))/count(*)) from yourtablename as TotalAverage 

應該返回您發佈的內容。但是,返回最後一行(Total)作爲查詢的一部分是糟糕的設計,至少可以說。當您實際顯示/生成報告文件時,應該在下一步中完成。

+0

PS1 - 如果score1數據類型爲int,平均也可能被四捨五入爲INT(沒有小數位)。因此,你也可能需要演員 - 我會在一分鐘內編輯我的答案。 –

+0

PS2 - 這是我第一次將id作爲varchar。是否確保與最後一個('Total')行的「union all」沒有引發錯誤。不管怎樣,不應該。 –

0

你應該在文本組件中使用一個表達式: {Sum(Score1+Score2)}