次のようなクエリがあります。
SELECT LossCost, CoverageID
FROM BGILossCost]
WHERE CoverageID IN (1, 2) AND
StateID = @StateID AND
ConstructionID = @ConstructionID AND
PropertyClassCodeID = @PropertyClassCodeID AND
(BGIDistrictID = @BGIDistrictID OR BGIDistrictID IS NULL)
そして、正しい次のデータを返します。
LossCost CoverageID
--------------------------------------- -----------
0.012 1
0.034 2
しかし、私がやりたいのは、CoverageIDの値に応じて2つの変数を設定することです
これが疑似コードです:
SELECT @Var1 = CASE CoverageID = 1 THEN LossCost END,
@Var2 = CASE CoverageID = 2 THEN LossCost END
FROM BGILossCost]
WHERE CoverageID IN (1, 2) AND
StateID = @StateID AND
ConstructionID = @ConstructionID AND
PropertyClassCodeID = @PropertyClassCodeID AND
(BGIDistrictID = @BGIDistrictID OR BGIDistrictID IS NULL)
私はいつでも以下を行うことができましたが、パフォーマンス上の理由から同じテーブルに2回参加する必要がないことを望んでいました
SELECT @Var1 = LossCost
FROM BGILossCost]
WHERE CoverageID = 1 AND
StateID = @StateID AND
ConstructionID = @ConstructionID AND
PropertyClassCodeID = @PropertyClassCodeID AND
(BGIDistrictID = @BGIDistrictID OR BGIDistrictID IS NULL)
SELECT @Var2 = LossCost
FROM BGILossCost]
WHERE CoverageID = 2 AND
StateID = @StateID AND
ConstructionID = @ConstructionID AND
PropertyClassCodeID = @PropertyClassCodeID AND
(BGIDistrictID = @BGIDistrictID OR BGIDistrictID IS NULL)
どんな提案も役に立ちます。