1
我有一個存儲過程下面的SQL,我需要更新:比較值的子查詢
SELECT MEM.Id,
EN.artistName,
EN.dateAdded,
EN.voteStatus,
ES.enterNextRound,
ES.notified,
ES.voted,
GR.genre,
ES.entrantId AS bandID,
ES.rnd2Feedback AS feedback,
ES.compositionVote,
ES.vocalsVote,
ES.originalityVote,
(SELECT COUNT(Voted)
FROM recEntrantStatus
WHERE voted = 1
AND roundId = 2
AND entrantId = ES.entrantId) CountVoted,
(SELECT COUNT(Voted)
FROM recEntrantStatus
WHERE roundId = 2
AND entrantId = ES.entrantId) CountTotalVotes,
(SELECT COUNT(Id)
FROM recMembers) TotalJudges
FROM recMembers AS MEM
LEFT JOIN recEntrantStatus AS ES
ON MEM.Id = ES.judgeId
LEFT JOIN recEntrants AS EN
ON ES.entrantId = EN.Id
LEFT JOIN recGenre AS GR
ON EN.genreId = GR.Id
WHERE MEM.Id = @memberId
AND ES.roundId = 2
ORDER BY bandID DESC
這適用於顯示所有匹配的記錄,但我現在只是需要返回記錄,其中的價值CountVoted小於CountTotalVotes。
伊夫試圖在WHERE子句中如添加一個簡單的compatison:
AND CountVoted< CountTotalVotes
香港專業教育學院也嘗試:
AND recEntrantStatus.CountVoted< recEntrantStatus.CountTotalVotes
和:
CountVoted.CountVoted< CountTotalVotes.CountTotalVotes
但是這有相同的結果這兩個領域被分類爲不明確或不存在。那麼我應該如何適應事情才能進行比較呢?
This throws the以下錯誤:SQL46047 :: ORDER BY子句在視圖,內聯函數,派生表,子查詢和公用表表達式中無效,除非還指定了TOP或FOR XML或OFFSET。 –
哎呀,我會去改變,謝謝。 –
@PhillHealey,pleasse查看更多編輯 – HoneyBadger