SQL:SUM()在应用不相等条件时不起作用

SQL:SUM()在应用不相等条件时不起作用,sql,Sql,下面是我的凭单表和查询。当2时,我想计算不带pay_action_id值的信用列的总和。但是查询输出为空 SELECT sum(credit) from voucers where pay_action_id<>2 +------------------------------+ |debit | credit | pay_action_id| +------------------------------+ |40.00 | 4.00 | null | +--

下面是我的凭单表和查询。当2时,我想计算不带pay_action_id值的信用列的总和。但是查询输出为空

SELECT sum(credit) from voucers where pay_action_id<>2

+------------------------------+
|debit | credit | pay_action_id|
+------------------------------+
|40.00 | 4.00   | null         |
+------------------------------+
|0.00  | 46.00  | 2            |
+------------------------------+
|0.00  | 34.00  | 1            |
+------------------------------+
|40.00 | 0.00   | null         |
+------------------------------+
从付款行动id2的凭证中选择金额(贷方)
+------------------------------+
|借方|贷方|付款|行动| id|
+------------------------------+
|40.00 | 4.00 |空|
+------------------------------+
|0.00  | 46.00  | 2            |
+------------------------------+
|0.00  | 34.00  | 1            |
+------------------------------+
|40.00 | 0.00 |零|
+------------------------------+

输出如果解决

与大多数其他比较一样,
过滤掉
空值。如果您想要它们,您需要显式地包含它们。一种方法是:

SELECT sum(credit) 
FROM voucers 
WHERE pay_action_id <> 2 OR pay_action_id IS NULL;
MySQL有一个定制的运营商:

WHERE NOT (pay_action_id <=> 2)
不在哪里(付款行动id 2)

仅使用您正在使用的数据库标记您的问题。删除了冲突的数据库标记,请添加您实际使用的数据库标记!
WHERE NOT (pay_action_id <=> 2)