2011-11-30 153 views
0

我寫一個觸發第一次誰能幫我解決這個問題SQL觸發器做總和,平均

什麼其實我想做到的是,我創建了一個數據庫表5列。插入查詢我插入值到2列,我希望與此插入,其他3列的值應自動填充。爲此,我想創建一個觸發器,用於計算時間和銷售額的總和和平均值(分別在數據庫表中定義兩列),即當我們輸入時間和銷售額時,還應計算總和和平均值(單獨計算時間和銷售額)當我們選擇表格時,它應該顯示所有四個條目(時間,銷售量,總和,平均值)。

現在我使用觸發器爲:

ALTER TRIGGER [dbo].[trgInsert] ON [dbo].[tblEvalutionData] 
    for insert 
AS 
BEGIN 
    insert into tblEvalutionData (AverageSales,TotalSales,TotalTime) 
    select avg(Sales) as AverageSales, sum(Sales) as TotalSales,sum(ElapsedTime)as TotalTime from inserted 
END 

當我寫這篇文章的查詢

插入tblName(時間,銷售)的值(5,34),並執行該它給人的結果作爲:

Time Sales SumSales AverageSales 
5  34 null null 
null null 34 34 
6  14 null null 
null null 48 24 

我該如何解決這個問題?或者有沒有其他方法可以做到這一點?

回答

2

不要爲此使用觸發器!

SQL Server支持calculated columns。對於聚合物,您可以使用indexed views

但是,我認爲你非常困惑你想要做什麼。

如果要合計單個插入的行,我可以向您保證SUMAVERAGE將等於Sales字段。

請提供更多關於您正在嘗試完成的內容的信息(只需編輯問題以添加它),我們可以提供一個答案。

+0

我編輯了這個問題,爲您提供場景,請幫忙解決問題 – Surbhi

+0

@Surbhi是否想將所有插入行的平均值設置爲一組?是否有其他一些標準可以將它們分組? – JNK