我正在开发一个使用oledb连接的c#app。
我的表格如下
付款
Id RemFee
1 2000
2 2500
1 1500
3 8000
3 5000
2 500
3 0
我想选择并仅检查每个Id的最后记录,并将Remfee与0进行比较。如果它大于0,则打印记录。即我的预期结果是:
Id
1
2
在此检查中,对于具有RemFee 1500的Id 1(因为它是Id1的最后一条记录)。它大于0,因此打印记录。
答案 0 :(得分:2)
猜测您正在使用MSQ SQL Server,并且没有行知道这是您最后插入的行。试试这段代码:
SELECT Id, Min(RemFee) AS RemFee
FROM payment
WHERE RemFee > 0
GROUP BY ID
以下是 SQL Fiddle working 代码示例
修改强>
如果您只想在此处显示ID字段,则可以选择 SQL Fiddle code
SELECT myTable.Id
FROM (SELECT Id as ID, Min(RemFee) AS Remfee
FROM payment
WHERE RemFee > 0
GROUP BY ID
) myTable
答案 1 :(得分:1)
SELECT ID,MIN(REMFEE) FROM payment WHERE ID NOT IN (SELECT ID FROM payment WHERE REMFEE = 0) GROUP BY ID
答案 2 :(得分:0)
Select
id, Min(RemFee)
from payment
where RemFee > 0
group by id