2014-02-11 90 views
-1

我目前正在開發一個投票系統。我寫了一個查詢來獲得所有選票,但它只顯示所有投票獲得者,而不是最高票數。我應該在查詢中添加什麼來執行我所需要的。這是代碼。使用SQL Server獲取最高計數

SELECT DISTINCT 
    b.idnumber, b.candidate_name, semester, 
    (SELECT COUNT(rslt_ccandidateid) FROM rslt_mstr 
    WHERE rslt_ccandidateid = idnumber) AS 'numberOfVotes', 
    b.position, b.program, b.position_categ, b.party_name, 
    b.school, b.yearLevel, a.hierarchy   
FROM 
    cddt_mstr b 
INNER JOIN 
    Position_mstr a ON a.scposition_name = b.position 
WHERE 
    b.POSITION_CATEG = 'SUPREME COUNCIL CANDIDATES' 
    AND semester = '2ND SEMESTER A.Y. 2012-2013' 
ORDER BY 
    a.hierarchy, 'numberOfVotes' DESC 
+1

您能否提供樣本數據,期望的結果以及我們的查詢產生的內容? –

+0

我只是想在每個位置顯示排名最高的投票。有了上面的查詢,它只是顯示所有的候選人與他們的投票ORDER各自的位置 – Nozella

回答

0

下面的東西可能會起作用。我假設rslt_ccandidateid不是投票值有一些其他列,我調用[vote_column_name],其中包含投票值。我還假設投票值是一個整數列。最後,我假設你不希望所有選票的總和只是所有選票中最高的。

SELECT DISTINCT b.idnumber, b.candidate_name, semester, (
     SELECT MAX([vote_column_name]) 
     FROM rslt_mstr 
     WHERE rslt_ccandidateid = idnumber 
     GROUP BY rslt_ccandidateid 
     ) AS 'numberOfVotes', b.position, b.program, b.position_categ, b.party_name, b.school, b.yearLevel, a.hierarchy 
FROM cddt_mstr b 
INNER JOIN Position_mstr a ON a.scposition_name = b.position 
WHERE b.POSITION_CATEG = 'SUPREME COUNCIL CANDIDATES' 
    AND semester = '2ND SEMESTER A.Y. 2012-2013' 
ORDER BY a.hierarchy, 'numberOfVotes' DESC 
+0

它不工作。我通過這些代碼獲得投票「(select count(rslt_ccandidateid)from rslt_mstr where rslt_ccandidateid = idnumber)as'numberOfVotes'」,它包含在上面的代碼中 – Nozella