1

次のような SQL テーブルがあります。

SQL テーブル

出力を次のようにしたい:

出力

基本的:

  • 重複を空白に置き換えますが、
    • 同じcol1値に対してcol6値が前の行と異なる場合は 、すべてのデータ フィールドを含める必要があります。
  • 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"

私のクエリに構文エラー/アクセス違反がある場所、またはデータを抽出するためのより良い方法がある場所に誰かが光を当てることができますか?

4

1 に答える 1