2017-12-07 16 views
0

SQLのループとしてこれを行う方法を教えてもらえますか?私はVBAでXlDownと同様に同様の最後のセルを見つける方法についてのカウンタを必要とするので、SQLでループを設定する

update Bank set Report_date_next='2014-02-28' where Reporting_date='2014-01-31' 
update Bank set Report_date_next='2014-03-31' where Reporting_date='2014-02-28' 
update Bank set Report_date_next='2014-04-30' where Reporting_date='2014-03-31' 
update Bank set Report_date_next='2014-05-31' where Reporting_date='2014-04-30' 
update Bank set Report_date_next='2014-06-30' where Reporting_date='2014-05-31' 
update Bank set Report_date_next='2014-07-31' where Reporting_date='2014-06-30' 

リストはかなり長い間続きます。

+0

の可能性のある重複した[ループのストアドプロシージャ内のSQLサーバー内](https://stackoverflow.com/questions/22435195/loop-in- stored-procedure-in-sql-server) –

答えて

2

あなたはCASE文を使用してオフにずっといいよ:

UPDATE Bank 
SET Report_date_next = CASE WHEN Reporting_date = '2014-01-31' THEN '2014-02-28' 
          WHEN Reporting_date = '2014-02-28' THEN '2014-03-31' 
          WHEN ...etc 
         END 

あなたが使用しているDBMSとのあなたの質問にタグを付ける場合は、使用可能な機能に応じてさらに簡単な方法があるかもしれません。

あなたが行うことができます2012+たとえば、SQL Serverの:

UPDATE Bank 
SET report_date_next = EOMONTH(Reporting_date,1) 
+0

私はSQL Server 2014を使用しています。 –

+0

@SergeKashlik NP、もう少し単純化することができました。 'DATEADD'は不要でした –

関連する問題