1

ユーザーがすべての値を選択できる多値パラメーターで LEFT() 関数を使用しようとすると、いくつかの問題が発生します。私のデータセットでは、次のコードを使用します。

 SELECT * FROM TABLE WHERE AccountValue BETWEEN 10000 and 50000
 AND CodeValue IN ('',100,LEFT(@Parameter,3))

基本的に、マトリックスで取得する必要がある結果は、10000 から 50000 の間のすべてのアカウントであり、コード値は空白、100、またはユーザーがパラメーターで選択した値の左 3 文字です。パラメータの値は次のとおりです。「200 - Finance」、「300 - Admin」、「400 - HR」など。表のコード列の値は 100、200、300、400 などです。パラメータの文字列値を分割する LEFT 関数。ユーザーが 1 つのパラメーターのみを選択する場合、これは正常に機能します。しかし、複数またはすべてを選択すると、クエリの構文が台無しになり、「左の関数には 2 つの引数が必要です」というエラーが返されます。助言がありますか?

4

1 に答える 1

0

全員が、パラメーター プロパティでパラメーターのラベルと値を指定することで、この問題を回避できました。ユーザーに表示されるラベルは、「Finance」、「Admin」などです。それらの値は、コード値 001/002/etc です。次に、データセットの句を次のように設定します。

WHERE CodeValue IN ('',100,@Parameter)
于 2012-09-06T00:12:04.097 に答える