0

これはおそらくより明確なバージョンであるため、元の質問を破棄しました!

これが私がやろうとしていることです。現在、「サブクエリが EXISTS で導入されていない場合、選択リストで指定できる式は 1 つだけです。」というメッセージが表示されます。強調されたテキスト*

declare @X int

SET @X=(
SELECT B.ID, 
Case
When Getdate() Between '2012-11-01 00:00' AND '2013-10-31 23:59' then 731
When Getdate() Between '2012-11-01 00:00' AND '2013-10-31 23:59' then 1096
END FROM  Booking B)


Select 
B.Created - @X AS 'Bookings date less X'
From Booking B
4

2 に答える 2

2

2番目のビットで何をしようとしているのかわかりませんが、これは最初のビットに役立つはずです(SQL Serverを使用していると仮定します)...

declare @x integer;

set @x = case WHEN Getdate() Between '2012-11-01 00:00' AND '2013-10-31 23:59' then -731 when Getdate() Between '2013-11-01 00:00' AND '2014-10-31 23:59' then 1 end;

print @x
于 2013-09-06T16:02:10.977 に答える
1

あなたの質問を正しく理解できれば、case ステートメントvariableを探しています。

DECLARE @X int

SELECT @X = 
    CASE WHEN Getdate() Between '2012-11-01 00:00' AND '2013-10-31 23:59' THEN -731
    ELSE
    CASE WHEN Getdate() Between '2013-11-01 00:00' AND '2014-10-31 23:59' THEN 1096
    ELSE
    NULL
    END

次に、いくつかの後続のステートメントで:

CASE WHEN B.Created < @X THEN 'Hello' ELSE 'Not Hello' END
于 2013-09-06T16:03:38.150 に答える