select OptionID,OptionText,QuestionID ,
       A.OptionVotes,
       B.TotalVotes,
       (A.OptionVotes/B.TotalVotes)*100 as Percentage,
       (A.OptionVotes/B.TotalVotes)*60 as ImageWidth 
from Options as o 
join (select OptionID,[OptionVotes]=count(1) from Votes group by OptionID) A on A.OptionID=o.OptionID
join (select v.OptionID,[TotalVotes]=count(v.QuestionID) from Votes as v inner join Questions as q on v.QuestionID=q.QuestionID) B on B.OptionID=o.OptionID 
and o.QuestionID=@questionID order by o.OptionID desc

解决方案 »

  1.   

    select 
    OptionID,OptionText,QuestionID ,
    (OptionVotes/TotalVotes)*100 as Percentage,
    (OptionVotes/TotalVotes)*60 as ImageWidth 
    from
    (
    select OptionID,OptionText,QuestionID , (select count(OptionID) from Votes  where OptionID=o.OptionID) as OptionVotes, (select count(v.QuestionID) from Votes as v inner join Questions as q on v.QuestionID=q.QuestionID 
    where v.QuestionID=@questionID) as TotalVotes,
    from Options as o where QuestionID=@questionID 
    ) A
    order by OptionID desc