Я достаточно хорошо знаком с данными PI OSI и сделал то же самое после загрузки данных тега PI в базу данных SQL Server.
Хитрость заключается в том, что должен быть еще один столбец с временем начала.или Время окончания, чтобы можно было сопоставить правильные строки для A, B и C.
Тогда нужно просто использовать PIVOT (только для SQL Server 2005+), чтобы сгруппировать их:
SELECT *
FROM (SELECT ts_start, ID, Value FROM DataTable) v
PIVOT( SUM(Value) FOR ID IN ([A],[B],[C]) ) AS pvt
Вы можете использовать практически любой агрегат (MAX, MIN, SUM и т. Д.) Выше, это не имеет значения, если для каждой отдельной комбинации тега и метки времени есть только одно значение.PIVOT требует агрегирования, также как псевдонимы v
и pvt
(вы можете называть их как хотите).