我有一个数据库根据标签确定不同的值。标签决定它是否是免除的价值。例如,2 =不予豁免,3 =豁免。如果我运行一个查询我的结果是这个样子数据库返回0的结果小于1
|Name |EXEMPT VALUE|NON EXEMPT VALUE|Total Value|
|X |100.00 |200.00 |300.00 |
|Y |0.00 |4.50 |4.50 |
Y的豁免值的值实际上比一个,0.30以下的数。 我没有创建数据库,所以我没有控制值的数据类型。数据类型是数字,这是我的查询返回值为0.00的原因?我应该将这些数字作为另一个数据类型来获得正确的结果。我的查询如下。
SELECT
NAME
,SUM(CASE WHEN EXEMPTIONSTATUS = 2 THEN TOTAL_VALUE ELSE 0 END) AS 'NON EXEMPT VALUE'
,SUM(CASE WHEN EXEMPTIONSTATUS = 3 THEN TOTAL_VALUE ELSE 0 END) AS 'EXEMPT VALUE'
SUM(TOTAL_VALUE) AS 'TOTAL VALUE'
FROM ORDER_ACCOUNT JOIN ACCOUNT_INVOICE
WHERE ORDER_ACCOUNT.DATE BETWEEN 'M/D/YEAR' AND 'M/D/YEAR'
GROUP BY NAME
ORDER BY NAME ASC
使用
VALUE
忘记您的查询的同时,与添加的INT到NUMERICS玩一下。这会突出显示您所看到的内容。 –以及我所有的数据类型都是数字,我正在运行的查询中没有整数。我在质疑的是,如果数字具有小数的精度,为何会发生这种情况。 – walangala
'ELSE 0 END' - 有一个INT –