С предоставленными данными, я не думаю, что вам нужно делать что-то еще:
SELECT MAX(Datum), MAX(Stand)
FROM TableName
WHERE ID = @MyId
редактировать: вы хотите это по ID, вы можете сделать это:
SELECT MAX(Datum), MAX(Stand), ID
FROM TableName
GROUP BY ID
CoGetClassObject по сути возвращает вам указатель на фабрику для конкретного интерфейса. Под капотом CoCreateInstance использует CoGetClassObject. Преимущество вызова CoGetClassObject заключается в том, что он позволяет вам создать фабрику классов только один раз, если вы хотите создать множество экземпляров определенного объекта.
В разделе MSDN CoGetClassObject есть краткое обсуждение того, как можно воспользоваться этой функциональностью.
Один сценарий в дополнение к тому, что сказал JaredPar - CoGetClassObject возвращает вам фабрику классов (вызывает функцию экспорта DLLGetClassObject вашей DLL в случае inproc-сервера). Фабрика классов используется для создания экземпляра кокласса. CoCreateInstance внутренне вызывает CoGetClassObject, получает требуемую фабрику классов и затем использует ее для создания запрошенного вами компонентного класса. При вызове CoCreateInstance нельзя отложить создание компонентного класса. Бывают случаи, когда создание кокласса может быть дорогостоящим, и вы хотели бы отложить его создание, но при этом иметь доступ к фабрике классов, чтобы вы могли создать экземпляр кокласса по запросу.