0

我正在开发使用 oledb 连接的 ac# 应用程序。

我的桌子在下面

支付

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,因此打印记录。

4

3 回答 3

2

猜测您正在使用 MSQ SQL Server 并且没有行知道您最后插入的行。试试这个代码:

SELECT Id, Min(RemFee) AS RemFee
  FROM payment
 WHERE RemFee > 0
 GROUP BY ID

这是一个SQL Fiddle 工作代码示例

编辑

如果你只想要这里的 ID 字段是一个选项,连同SQL Fiddle 代码

SELECT myTable.Id
  FROM (SELECT Id as ID, Min(RemFee) AS Remfee
          FROM payment
         WHERE RemFee > 0
         GROUP BY ID
        ) myTable
于 2012-10-22T07:13:36.987 回答
1
SELECT ID,MIN(REMFEE) FROM payment WHERE ID NOT IN (SELECT ID FROM  payment  WHERE REMFEE  = 0) GROUP BY ID
于 2012-10-22T07:05:13.090 回答
0
Select 
   id, Min(RemFee) 
from payment 
where RemFee > 0 
group by id
于 2012-10-22T07:10:42.353 回答