我正在構建Oracle SQL query.I嘗試獲得在兩個日期之間銷售最多國際支付的推銷員。爲什麼我的百分比0在SQL Server上運行?
我有以下查詢
SELECT ddo.CODE as "Salesman ID", ROUND((count(fpp.ID)/
(SELECT count(fpp2.ID)
FROM Payments_Table fpp2
JOIN Clients_Table da2 ON fpp2.Client_ID = da2.ID
JOIN Currency_Table dc2 ON dc2.ID = fpp2.CURRENCY_ID
WHERE dc2.CURRENCY_CODE != da2.CURRENCY
) * 100), 2) AS "% Different currency"
FROM Salesmen_Table ddo
JOIN Payments_Table fpp ON ddo.ID = fpp.DATA_OWNER_ID
JOIN Clients_Table da ON fpp.ORDERING_ACCOUNT_ID = da.ID
JOIN Currency_Table dc ON fpp.CURRENCY_ID = dc.ID
WHERE da.CURRENCY != dc.CURRENCY_CODE
GROUP BY ddo.CODE
應該給一個遞減名單,根據國際收支的百分比。像下面這樣:
- 推銷員ID%不同的貨幣
- 傑克66.66
- 約翰33.33
我有我的數據庫3金,2傑克和1約翰,所以這是我期望的結果。但是我的%的結果是0.這是怎麼回事?
你可以考慮使用RATIO_TO_REPORT解析函數。 – user2672165
將兩個計數作爲單獨的字段添加,以確保除數不是很大,以至於百分比小於0.01% –
預期百分比是33.33和66.66,所以我不認爲這解決了問題。 – Jonas