我正在构建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