Хотя, как и другие, я не совсем понял идею, запрос ниже производит вывод, как указано в исходном сообщении (которое, в свою очередь, было получено из вашего комментария). Для этого требуется SQL Server 2005 или выше .
WITH cte AS (
SELECT
ID,
IDID,
SUMM,
RowNum = ROW_NUMBER() OVER (PARTITION BY IDID ORDER BY ID)
FROM @T
)
SELECT
ID,
IDID,
SUMM = CASE RowNum WHEN 1 THEN SUMM ELSE 0 END
FROM cte
Обычно выходной столбец SUMM
содержит SUMM
из исходной таблицы, если это перваяпоявление IDID
в соответствии с указанием ID
, в противном случае столбец содержит 0
.
Не уверен, насколько это далеко от того, что вы ищете, но, возможно, это поможет вам более подробно объяснить вашу проблемуточно.