2016-09-27 8 views
0

私は最初のドロップダウンに基づいて2番目のドロップダウンを埋める必要がある2ドロップダウンがある場合、私は1番目のドロップダウン 'すべての'私が使用しているクエリダウン第二のドロップを移入するサブクエリが2つ以上の値を返しました。これは、比較演算子を使用してサブクエリ

SELECT DISTINCT [Year] from dbo.[tbl_A] 
    WHERE [TyreSize] IN 
    (CASE 'All' 
    WHEN 'All' Then (SELECT DISTINCT [Tyresize] FROM dbo.[tbl_A]) 
    WHEN '27.00 R 49' Then (SELECT DISTINCT Tyresize FROM dbo.[tbl_A]      
    WHERE [TyreSize] IN ('27.00 R 49')) 
    END) 
+1

あなたはロジックと入力パラメータを説明することができている、してください?最初のドロップダウンリストの選択した値をこのクエリにどのように渡していますか? – Ted

+0

その場合は全く意味がありません。文字列リテラル 'All'は常に 'All'と同じです。つまり、最初のWHENが常に得られます。次に、相関なしでSELECTを実行します。つまり、多くの行が戻されますが、ここでは1つの値のみが許可されます。 – jarlh

+0

いくつかのサンプルテーブルデータと期待される結果(書式付きテキストと同様)を追加してください。 – jarlh

答えて

2

利用OR代わりのCASE WHEN

SELECT DISTINCT [Year] from dbo.[tbl_A] 
WHERE 
    @All = 'All' OR -- @All is your parameter 
    [TyreSize] IN ('27.00 R 49') 
+0

'@ All'は何ですか? – Ted

+0

彼は 'All'文字列を格納する変数を持っていると思います。 – NEER

+0

いいえここには変数がありません –

1
declare @status varchar(20) 
    set @status='All' 
    select * from t1 where ID in 
    (Select (Case when @status<>'All' then @status else (select distinct id from t1) end) AS test from t1) 
関連する問題