0
我有作为SQL查询的一部分的Sql返回0,其中一个比预期
SELECT
TransID,
SUM(isSatisfactory) as SatTr,
count(AllTrades.AllTradeIndex) as AllTr,
(SUM(isSatisfactory)/count(AllTrades.AllTradeIndex)) * 100 as RatioOf
FROM
...Several subqueries here...
GROUP BY TransID
的结果是
strTransID SatTr AllTr RatioOfGoodAccounts
307319906 6 12 0
如果我选择没有组和数学的列,这是结果设置
strTransID isSatisfactory AllTradeIndex
307319906 NULL 1334036
307319906 NULL 1334037
307319906 NULL 1334038
307319906 NULL 1334039
307319906 NULL 1334040
307319906 1 1334041
307319906 NULL 1334042
307319906 1 1334043
307319906 1 1334044
307319906 1 1334045
307319906 1 1334046
307319906 1 1334047
我想也许是空搞乱它,但我想聚结,并没有影响结果。
整数运算。如果数据类型是整数(无小数),则在SQL服务器中将'(SUM(isSatisfactory)/ count(emplodes.AllTradeIndex))'改为'(SUM(isSatisfactory * 1.0)/ count然后评估结果也是整数(无小数)来解决,将数据类型转换为所需长度的十进制或乘以小数,以便引擎知道在结果中包含小数。 [文档显示这是预期](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/divide-transact-sql) – xQbert
@xQbert是的,这是我的问题是。 –