Я получаю доступ к базе данных из C# через SQL-команды и задавался вопросом, как я могу прочитать всю таблицу, но только с последней датой для каждой записи. Моя таблица выглядит следующим образом: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
и т.д ...
Я знаю, что таблица имеет несколько записей с одинаковым идентификатором, на разные сроки с различными заданиями/сотрудников , Я просто хочу выполнить цикл и для каждого идентификатора, получить последнюю информацию для этого идентификатора. Я искал часы и не могу найти ничего, что сработает (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);
, но не могу показаться, чтобы получить что-нибудь на работу (я пробовал несколько способов и понял, проблема должна быть со мной, глядя на это неправильно), может ли кто-нибудь помочь?
Я пробовал! Спасибо за ваш ответ, но я получил ошибку :( открывающимися: System.Data.OleDb.OleDbException (0x80040E14): Ошибка синтаксиса в предложении FROM в System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling (OleDbHResult ч) в системе.. Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult (tagDBPARAMS dbParams, Object & executeResult) ----- Спасибо за то, что вы так быстро! – blindman457
снова посмотрел на него и попробовал это как мою команду SQL: SELECT ac. * FROM [A & C] AS AC INNER JOIN (SELECT [Идентификационное имя], MAX ([Дата начала]) AS MaxDate FROM [A & C] AS AC GROUP BY [ID Name]) AS ac2 ON ac. [ID Name] = ac2. [Идентификатор имени ] И ac. [Начало] = ac2.MaxDate У меня теперь есть ошибка, говорящая мне, что «A & C» не найден ... ПОМОЩЬ! – blindman457
@ blindman457 ... Я не могу с этим поделать. Вы должны использовать правильное имя ваших таблиц для работы любого запроса. Я предлагаю вам начать с более простого запроса, просто чтобы убедиться, что соединение и имена работают. –