2016-05-17 6 views
0

なぜ問題なくSSRSでこのコードの動作を行います。計算を含むパラメータを含むクエリがSSRSで機能しないのはなぜですか?

SELECT DISTINCT DEPARTMENT FROM MY_TABLE 
WHERE MONTH > :O_MONTH 

しかし、これはしていません:

SELECT DISTINCT DEPARTMENT FROM MY_TABLE 
WHERE MONTH > trunc(:O_MONTH-30) 

私はちょうど好奇心が強い、その理由は何ですか?これを回避する方法があるので、データセットのクエリを埋め込むことができますか? 「クエリパラメータの定義」ウィンドウがポップアップするクエリの2番目のバージョンを追加すると、何かが間違っていると伝えられます。

助けてください。おかげ

UPDATE:

両方のクエリは、例えばヒキガエルで働く

が、2番目、私は必要がある1つは、Visual Studioのでは動作しません。入力パラメータからの控除に関する何かが問題を引き起こしています。これを回避する方法を見つけるのを助けてください!

答えて

1

次のオプションを試すことができますか。

SELECT DISTINCT DEPARTMENT FROM MY_TABLE 
WHERE MONTH > trunc(:O_MONTH) - 30; 

OR

SELECT DISTINCT DEPARTMENT FROM MY_TABLE 
    WHERE MONTH > trunc(CAST (:O_MONTH AS DATE)) - 30; 

OR

SELECT DISTINCT DEPARTMENT FROM MY_TABLE 
    WHERE MONTH > (CAST :O_MONTH AS DATE) - 30; 
+0

ありがとうございました! 2番目のクエリが機能します。 – Zolt

0

文字列を渡す場合は、TO_DATE変換を使用してください。例:trunc(to_date(:o_month、 'mm-dd-yyyy')) - 30。

+0

私は、日付タイプを渡していないので、変換は必要います。 – Zolt

+0

あなたは日付を渡すかもしれませんが、あなたはSSRSがDBを渡していることを知っていますか?私はあなたが変換を試みることをお勧めします。 –

+0

私は実際に変換を試みましたが、どちらも機能しません。エラーが発生しました: 'ORA-01858:数字が期待されたところに数字以外の文字が見つかりました。 'これは、私が渡している値が日付としてタイプされているためです。私は値が日付であり、文字列ではないことがわかります。しかし、ありがとう。 – Zolt

関連する問題