我的问题是我只想显示所有未支付的行:
我有此数据:
id name commission paid
1 James 15000 2000
2 Curry 15000 15000
3 Durant 15000 0
4 Wade 15000 5000
5 Harden 15000 15000
我只想获取不等于0的行,如果commission - paid
大于0,我想使用where子句
我期望的输出是:
id name commission paid
1 James 15000 2000
3 Durant 15000 0
4 Wade 15000 5000
答案 0 :(得分:2)
您可以通过对WHERE
进行简单计算来使用以下解决方案:
SELECT * FROM table_name WHERE commission - paid > 0
您还可以使用以下内容:
SELECT * FROM table_name WHERE commission > paid
注意:在这种情况下,有人可以多付佣金。使用!=
或<>
会发现多付未支付。
演示: https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=a391576f2df2c5d7c8616485b2c70099
要获取所有付费行,您可以使用以下代码:
SELECT * FROM table_name WHERE commission - paid <= 0
或...
SELECT * FROM table_name WHERE commission <= paid
答案 1 :(得分:2)
SELECT * FROM table_name WHERE (commission - paid) > 0
或
SELECT * FROM table_name WHERE commission!=paid
这也是可行的,因为减法将大于零或大于零(假设支付的金额始终小于佣金)
答案 2 :(得分:1)
您可以使用下面通过WHERE
子句给出的以下查询
SELECT * FROM commision_table_name WHERE (commission - paid) > 0;