sql語句求百分比


此sql語句包括了兩個聚合函數做除法求百分比,並保留兩位小數,直接輸出字符串形式的百分比。以及對case when在聚合函數的應用。

SELECT ss.SS_NAME,SS_ID,
COUNT(ea.EA_ID) AS EACounts,--回單交換單個數
COUNT(eb.EB_ID) AS EBCounts,--交換單個數
COUNT(ps.PS_ID) AS PSCounts,--簽收單個數
COUNT(SW_ID) AS SWCounts,--運單數個數
COUNT(CASE WHEN PS_STATUS=1 THEN 'PS_ID' END) AS PSSCounts,--簽收成功單個數
CAST(CONVERT( DECIMAL(18,2),COUNT(ea.EA_ID)/CAST(ISNULL(NULLIF(COUNT(EB_ID),0),1) AS FLOAT)*100)AS VARCHAR(10))+'%' AS ReturnPer,--回單率
CAST(CONVERT(DECIMAL(18,2),COUNT(ps.PS_ID)/CAST(ISNULL(NULLIF(COUNT(SW_ID),0),1) AS FLOAT)*100)AS VARCHAR(10))+'%' AS SignPer ,--簽收率
CAST(CONVERT(DECIMAL(18,2),COUNT(CASE WHEN PS_STATUS=1 THEN 'PS_ID' END)/CAST(ISNULL(NULLIF(COUNT(PS_ID),0),1) AS FLOAT)*100 ) AS VARCHAR(10))+'%' AS SignSucPer --簽收成功率
FROM dbo.SBD_WAYBILL sw
LEFT JOIN dbo.PDA_SININFO ps ON sw.SW_ID=ps.PS_SW_ID
LEFT JOIN dbo.SBD_EXCHANGE_RETURN_BILL ea ON ea.EA_SW_ID=sw.SW_ID
LEFT JOIN dbo.SBD_EXCHANGE_BILL eb ON eb.EB_SW_ID=sw.SW_ID
LEFT JOIN dbo.SBD_STATION ss ON ss.SS_ID=sw.SW_DESTINATION
WHERE 1=1 GROUP BY SS_ID,SS_NAME
ORDER BY SS_NAME

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM