Sql存儲過程---計算出投票百分比

1。建表:Vote主表和VoteOption選項表

Vote表:

Vote測試數據:

VoteOption表:

 

Option測試數據:

現在要計算出投票名稱爲“第二個投票”的各項投票數的百分比

存儲過程如下:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER  PROCEDURE [dbo].[cms_GetVoteOptions]
 @VoteGuid varchar(36)
AS

DECLARE @total_count int
SELECT @total_count = ISNULL(( SELECT SUM(VoteNum) FROM [cms_VoteOption] WHERE VoteGuid = @VoteGuid),0)

IF @total_count <> 0
SELECT OptionID,VoteGuid,VoteContent,VoteNum, (100 * VoteNum + @total_count / 2) / @total_count AS per FROM [cms_VoteOption]
WHERE VoteGuid = @VoteGuid

ELSE
SELECT OptionID,VoteGuid,VoteContent,VoteNum, 0 AS per FROM [cms_VoteOption]
WHERE VoteGuid = @VoteGuid

 

測試語句:exec [cms_GetVoteOptions] 'd080ccd4-8b05-4b2e-83af-f0bfac423803'

執行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章