У меня есть таблица SQL, подобная этой:
и я хочу, чтобы вывод был таким:
В основном:
- replace duplicates with blanks but
- if col6 value is different from the previous row for the same col1 value, all the data fields should be included.
- значения col10 пусты.
- col12 удален.
Я пытаюсь создать запрос. Я нашел это: ответ CTE
и попытался запустить следующее:
;WITH CTE
AS
(
SELECT DBA.s12.*,
ROW_NUMBER() OVER(PARTITION BY DBA.s12.col6 ORDER BY(SELECT 1)) rownum
FROM DBA.s12
)
SELECT
DBA.s12.col1,
DBA.s12.col2,
DBA.s12.col3,
DBA.s12.col4,
DBA.s12.col5,
DBA.s12.col7,
DBA.s12.col8,
DBA.s12.col9,
DBA.s12.col10,
DBA.s12.col11,
DBA.s12.col12,
CASE rownum
WHEN 1 THEN DBA.s12.col6
ELSE ''
END AS col6
FROM CTE
ORDER BY DBA.s12.col1;
но получаю ошибку "Could not execute statement. Syntax error or access violation"
Может ли кто-нибудь пролить свет на то, где в моем запросе есть синтаксическая ошибка/нарушение доступа или есть лучший метод для извлечения данных?