SQL Server2012 にてWITH句で連続する日付を2年分くらい求めているのですが
SELECT文だけ投げるときはOPTION (MAXRECURSION 800)
の記述で
最大再帰レベル上限を下のオプションで100→800に上げられたのですが、
CREATE VIEW(ALTER VIEW)しようとしたところエラーでだめでした。
オプションは使えないのかな代わりにどうしようか…と調べております。
キーワード 'OPTION' 付近に不適切な構文があります。
代わりに思いつくのは、別途テーブル作って日付はテーブルからとってくる…ような仕様ですかね…
--オプション使える&流れる -- 2年前の今月-来月までのYMD取得 WITH GetYMD(YMD) AS( SELECT DATEADD(DAY,1,EOMONTH(GETDATE(),-24)) UNION ALL SELECT DATEADD(DAY,1,YMD) FROM GetYMD WHERE YMD < DATEADD(MONTH,1,GETDATE()) ) --,GD AS( SELECT FORMAT(YMD,'yyyyMMdd') AS KEY_DATE ,DATEPART(WEEKDAY,YMD) AS YOBI FROM GetYMD OPTION (MAXRECURSION 800) --最大再帰レベルを上限100--->800
--エラーになる USE [データベース] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[ビューの名前] AS -- 2年前の今月-来月までのYMD取得 WITH GetYMD(YMD) AS( SELECT DATEADD(DAY,1,EOMONTH(GETDATE(),-24)) UNION ALL SELECT DATEADD(DAY,1,YMD) FROM GetYMD WHERE YMD < DATEADD(MONTH,1,GETDATE()) ) --,GD AS( SELECT FORMAT(YMD,'yyyyMMdd') AS KEY_DATE ,DATEPART(WEEKDAY,YMD) AS YOBI FROM GetYMD OPTION (MAXRECURSION 800) --最大再帰レベルを上限100--->800
この辺り見てやっぱ無理なのかなと…
ヒント (Transact-SQL) - Query
https://docs.microsoft.com/ja-jp/sql/t-sql/queries/hints-transact-sql-query?redirectedfrom=MSDN&view=sql-server-2017
WITH common_table_expression (Transact-SQL)
https://docs.microsoft.com/ja-jp/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server-2017
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/04 01:05