【发布时间】:2012-10-22 15:32:25
【问题描述】:
我正在开发一个使用 oledb 连接的 c# 应用程序。
我的桌子在后面
付款
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,因此打印记录。
【问题讨论】:
-
SQL 表中没有固有的顺序,您应该使用列来存储顺序,这样您就知道最后插入的行是哪一行。至于你有什么,我们应该如何知道最后插入的行的
Id为 1 或 2。另外,你使用的是哪个 RDBMS,MS SQL Server、Oracle、MySQL? -
这会有点失败,您需要添加至少一列来指出每个 ID 的最新记录。
-
@freelancer 你最后的记录是什么意思?最后插入的?在这个表结构中如何维护插入顺序?
-
每个 id.i.e. 的最后一条记录Id 1 的最后一条记录是 1500 Id 2 是 500,依此类推
-
是的,只要看屏幕上的表格就很容易说。但是 sql 引擎不是这样操作的。它不会根据 order 区分这些记录