0
我正在通过SQL命令从C#访问数据库,并想知道如何读回整个表,但只能使用每个条目的最新日期。我的表如下:SQL C# - 通过最近的日期筛选相同的条目
表:
ID Name Begin Date Job Area Co-worker
--------------------------------------------------
1 1/01/2001 M1 Comp3 John Do
1 1/01/2003 M1 Comp3 Jane Do
1 1/01/2010 C2 Comp3 Jane Do
2 1/01/2010 C2 Comp3 John Do
3 12/01/2003 A6 Comp1 Smith John
3 12/01/2004 M2 Comp3 Smith Jack
等等
我知道,表中有多个条目具有相同的ID,在不同时间与不同的作业/同事。我只想循环访问每个ID,并获取该ID的最新信息。我查找了几个小时,似乎无法找到任何有效的东西(C#似乎很难使用SQL JOIN命令)。我已经尝试了一些不同的方法,如:
cmd = new OleDbCommand("SELECT * FROM [A & C] INNER JOIN(SELECT [ID Name], MAX([Begin Date]) AS MaxDate, Job, [Job Area], Co-Worker FROM [A & C] GROUP BY [ID Name]) [A & C] ON([A & C]", connectionObject);
,但似乎无法得到任何工作(我已经尝试过多种方式,实现了问题必须与我看着这个错误),任何人都可以帮忙吗?
我试过!谢谢你的回答,但我得到了一个错误:( Openning:System.Data.OleDb.OleDbException(0x80040E14):FROM子句中的语法错误 at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) at System。 Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,Object&executeResult)----- Thankyou太快了! – blindman457 2014-11-23 04:52:34
再次看着它,并试图将其作为我的SQL命令: SELECT ac。* FROM [A&C] AS ac INNER JOIN (SELECT ID [ID Name],MAX([Begin Date])AS MaxDate FROM [A&C] AS ac GROUP BY [ID Name])AS ac2 ON ac。[ID Name] = ac2。[ID Name ] AND ac。[Begin Date] = ac2.MaxDate 我现在有一个错误,告诉我'A&C'找不到...帮助! – blindman457 2014-11-23 06:05:00
@ blindman457 ......我无法帮助。你需要使用您的表格的正确名称以便任何查询工作。我建议你先从简单的查询开始,以确保连接和名称正常。 – 2014-11-23 13:12:51