C# 从表中选择最后一条记录
我正在开发一个使用oledb连接的c#应用程序 我的桌子在后面 付款C# 从表中选择最后一条记录,c#,sql,database,oledb,C#,Sql,Database,Oledb,我正在开发一个使用oledb连接的c#应用程序 我的桌子在后面 付款 Id RemFee 1 2000 2 2500 1 1500 3 8000 3 5000 2 500 3 0 我只想选择并检查每个Id的最后一条记录,并将Remfee与0进行比较。如果大于0,则打印记录。i、 e.我的预期结果是: Id 1 2 在本次检查中,使用RemFee 1500对Id 1进行检查(因为它是使用Id1的最后一条记
Id RemFee
1 2000
2 2500
1 1500
3 8000
3 5000
2 500
3 0
我只想选择并检查每个Id的最后一条记录,并将Remfee与0进行比较。如果大于0,则打印记录。i、 e.我的预期结果是:
Id
1
2
在本次检查中,使用RemFee 1500对Id 1进行检查(因为它是使用Id1的最后一条记录)。它大于0,因此将打印记录。猜测您正在使用MSQ SQL Server,并且没有行知道哪一行是您最后插入的行。请尝试以下代码:
SELECT ID,MIN(REMFEE) FROM payment WHERE ID NOT IN (SELECT ID FROM payment WHERE REMFEE = 0) GROUP BY ID
SELECT Id, Min(RemFee) AS RemFee
FROM payment
WHERE RemFee > 0
GROUP BY ID
这是一个代码示例
编辑
如果您只需要ID字段,这里有一个选项,以及
SELECT myTable.Id
FROM (SELECT Id as ID, Min(RemFee) AS Remfee
FROM payment
WHERE RemFee > 0
GROUP BY ID
) myTable
猜测您正在使用MSQ SQL Server,并且没有行知道哪一行是您最后插入的行。请尝试以下代码:
SELECT Id, Min(RemFee) AS RemFee
FROM payment
WHERE RemFee > 0
GROUP BY ID
这是一个代码示例
编辑
如果您只需要ID字段,这里有一个选项,以及
SELECT myTable.Id
FROM (SELECT Id as ID, Min(RemFee) AS Remfee
FROM payment
WHERE RemFee > 0
GROUP BY ID
) myTable
SQL表中没有固有的顺序,您应该使用列来存储顺序,以便知道最后插入的行是哪一行。至于您有什么,我们应该如何知道最后插入的行的
Id
为1或2。另外,您使用的是哪种RDBMS、MS SQL Server、Oracle、MySQL?这会有点失败,您需要至少添加一列,指出每个ID的最新记录。@freeloper上一条记录是什么意思?插入最后一个?如何在该表结构中保持插入顺序?每个id的最后一条记录,即。最后一条Id为1的记录是1500,Id为2的记录是500,所以只要看一下屏幕上的表格就很容易说出来。但是sql引擎不是这样运行的。它不会根据顺序区分这些记录在SQL表中没有固有的顺序,您应该使用列来存储顺序,以便知道最后插入的行是哪一行。至于您有什么,我们应该如何知道最后插入的行的Id
为1或2。另外,您使用的是哪种RDBMS、MS SQL Server、Oracle、MySQL?这会有点失败,您需要至少添加一列,指出每个ID的最新记录。@freeloper上一条记录是什么意思?插入最后一个?如何在该表结构中保持插入顺序?每个id的最后一条记录,即。最后一条Id为1的记录是1500,Id为2的记录是500,所以只要看一下屏幕上的表格就很容易说出来。但是sql引擎不是这样运行的。它不按顺序区分这些记录如果我只想打印id怎么办?如果我只想打印id怎么办?如果我只想打印相同条件下的id怎么办?如果我只想打印相同条件下的id怎么办?