假设我有一个看起来像这样的表:
项目:
ID Proj Status LogDate FundsRemain LogBy
60 2 Quit 1/5/2013 Yes QOVM
59 2 Quit 1/4/2013 Yes YZYO
58 2 Quit 1/3/2013 No XYZ
54 2 Start 1/1/2013 NA QOVM
50 1 Quit 12/2/2012 Yes UUOI
48 1 Quit 12/1/2012 Yes OIJP
目前我正在做的是一个 SQL 语句SELECT * FROM ProjSts WHERE Status = 'Quit' AND FundsRemain = 'Yes'
。然后,在另一个应用程序中,我让应用程序手动读取所有生成的项目状态条目,并为每个项目选择按时间顺序排列的第一个(最早)此类状态,以便将其导出到新表中。
我想知道的是,如果可能的话,如何在 SQL 语句中实现这一点。我查看了很多关于 SQL Group By 的教程,它们都显示了如果我想求和、平均等该怎么做……每个项目的所有条目的数字字段。我查看了一些关于子查询的教程,这些教程向我展示了如何生成一个 IN 列表,但我没有看到任何会生成一个后排序的第一条记录的列表,该列表满足另一个中每个唯一值的特定标准场地。
理想情况下,根据上面的示例数据,结果将是:
ID Proj Status LogDate FundsRemain LogBy
48 1 Quit 12/1/2012 Yes OIJP
59 2 Quit 1/4/2013 Yes YZYO
抱歉,我不是最高级的 SQL 用户,但如果我可以让它在 SQL 中运行,而不是依赖外部应用程序然后返回并重新处理选择结果只是为了选择,那就太好了我真正需要的。
任何帮助将不胜感激(PS:这是来自 ctree 数据库,我目前正在使用水晶报告 2008 进行初始数据提取)