从表中选择最后一条记录

时间:2012-10-22 07:01:22

标签: c# sql database oledb

我正在开发一个使用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,因此打印记录。

3 个答案:

答案 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