メッセージ134、レベル15、状態1、行21
変数名 '@AsOfDate'は既に宣言されています。変数名は、クエリ・バッチまたはストアド・プロシージャ内で一意である必要があります。SQL Server 2014のIFステートメントで変数を設定する
IF文のセットを実行しているときにこのエラーが発生します。理想的には、私が関心を持っている四半期に私のビットを1に切り替えるだけで、自分のコードを実行するだけです。 IF
ステートメントは、必要な日付を設定します。
私はIF
とELSE IF
でこれを試しましたが、どちらも違いはありません。どのように私がこれを行うことができるかに関するどんな提案も非常に高く評価されるでしょう。悲しいことに、これらのレポートはいつでも要求される可能性があるため、私が(あるいは前の)四半期を選ぶことはできません。
-------------------------
-- Choose Quarter --
-------------------------
DECLARE @Q1 BIT = 0
DECLARE @Q2 BIT = 0
DECLARE @Q3 BIT = 0
DECLARE @Q4 BIT = 0
DECLARE @Annual BIT = 0
-------------------------
--Q1
IF @Q1 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-03-31';
DECLARE @StartDate datetime = '2016-01-01'
END
--Q2
IF @Q2 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-06-30';
DECLARE @StartDate datetime = '2016-04-01'
END
--Q3
IF @Q3 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-09-30';
DECLARE @StartDate datetime = '2016-07-01'
END
--Q4
IF @Q4 = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-12-31';
DECLARE @StartDate datetime = '2016-10-01'
END
-- ANNUAL
IF @Annual = '1'
BEGIN
DECLARE @AsOfDate datetime = '2016-12-31';
DECLARE @StartDate datetime = '2016-01-01'
END
-- Check to ensure a time period is set
IF (@Q1 = 0 AND @Q2 = 0 AND @Q3 = 0 AND @Q4 = 0 AND @ANNUAL = 0)
BEGIN
PRINT 'NO TIME SET'
END
-- Run Code with dates
ELSE
BEGIN
EDIT:
無視...実際に私のエラーとコードの読み取りが明確に私は問題ではない変数の設定であることを宣言を指して...解決策は、私のIFの外で変数を宣言することですステートメント内にそれらを設定します。
問題の解決策を見つけられたらうれしいです。他の人がそれを見ることができるようにあなたの質問を編集するのではなく、答えとしてあなたのソリューションを投稿するべきです。 –
回答を投稿してください。あなたの質問のコードを正しく更新しないでください。それはちょうど混乱している。 – Blorgbeard
合意して、元のエラーコードを表示するために質問を再編集します。なぜ私は単に答えを投稿するとは思わなかったのか分かりませんが、私は質問を提起したので、それが起こったので、私は推測します:D – Izulien