2017-01-30 14 views
0

287で停止して繰り返す一連の線形数値を含むテーブルに列を追加しようとしています。このコードはテーブルが更新されるという点で機能しますが、すべての行は必要な番号ではなくゼロになります。 With句は、何かが更新されているので、selectを使うと動作することがわかるので動作します。WITHパーティション以上のパーティションの更新テーブル

WITH myupdate (myrownumber) 
AS (SELECT (Row_number() 
       OVER ( 
        partition BY tmc, date 
        ORDER BY tmc, date, epoch) - 1) AS myRowNumber 
    FROM [dbo].[i40_2016_all]) 
--SELECT * FROM myUpdate 
UPDATE [dbo].[i40_2016_all] 
SET mod_epoch = myrownumber 
FROM myupdate 
+1

MySQLはCTE( 'with')もウィンドウ関数(row_number()'もサポートしていません。このタグを削除しています。 –

答えて

0

私の推測では、SQL Serverを使用していると思います。

WITH myUpdate AS (
     SELECT a.*, 
      ROW_NUMBER() over (PARTITION BY TMC, DATE ORDER BY TMC, DATE, EPOCH) - 1 AS myRowNumber 
     FROM [dbo].[I40_2016_ALL] a 
    ) 
UPDATE myUpdate 
    SET MOD_EPOCH = myRowNumber; 
+0

ええ、SQL Server。私は別のバージョンがあることを忘れています –

+0

@BenZeddicusではなくバージョン(ex 2012または2016)、むしろシステム、MySQL、SQL Server、Oracle – Edward

関連する問題