你需要能夠告訴每個排什麼的最近日期base_percentage是,如果你希望能夠通過它來進行排序。一種方法是這樣的。您不需要在選擇輸出中保留LD.LastDayBase,我添加了它,以便您可以在測試時輕鬆查看該值。
如果您知道@LastDay是什麼,您可以將它傳遞給查詢並跳過第一行。
DECLARE @LastDay date = (select MAX(Curr_Date) from v_DailyDetails);
SELECT VD.*, LD.LastDayBase
FROM v_DailyDetails VD
LEFT OUTER JOIN
(
Select Name, BASE_PERCENTAGE LastDayBase
From v_DailyDetails VD
Where CURR_DATE = @LastDay
) LD on LD.Name = VD.Name
ORDER BY LD.LastDayBase DESC, VD.CURR_DATE DESC, LD.NAME
請注意,您所要求的訂單意味着如果Alice和Bob都具有相同的LastDayBase值,那麼你會得到下面的順序ALICE Feb4,鮑勃Feb4,愛麗絲Feb3,鮑勃Feb3等,如果你想天對於一個給定的名字是永遠在一起,你應該使用
ORDER BY LD.LastDayBase DESC,LD.NAME,VD.CURR_DATE DESC
我真的不明白....你想倒序對於BASE_PERCENTAGE,CURR_DATE和NAME?如果是這樣,如果你通過CURR_DATE,NAME,BASE_PERCENTAGE desc命令你的輸出是什麼? – Kostis
http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –
Hi @Kostis如果你仔細看到輸出結果,你就會明白。第一最大基地百分比必須找出。比最大值顯示所有日期的所有行。同樣它會繼續。 –