2017-09-14 13 views
0

誰かが助けてくれるのだろうかと思います。SSRSパラメータデータ駆動型サブスクリプションでデータパラメータが失敗する

私は、パラメータを計算するには、次のSQLコードを使用して、データドリブンサブスクリプションのスイートを持っています。これは、レポートで使用されるのと同じSQL Serverデータソースです。

select cast(dateadd(day,case when datepart(dw,getdate()) in (5,6) then 4 else 2 end,getdate()) as date) [parameter] 

レポートのパラメータはdate型です。

これは15ヶ月間は問題を働いていないが、サーバのアップグレード先週に続いてきた、これは今働いて停止しています。調べてみると、エラーログによれば、上記は有効な日付ではないという。私は手動でレポート自体に日付を入力すれば正常に動作します。サブスクリプションでハードコーディングされた日付を指定してレポートを見ると、結果は日付の月と日の部分を逆転するように表示されます(そのオプションが有効な日付を指定した場合)。重要なレポートの周りの一時的な作業として

、私はこれにコードを変更することにより、フォーマット「YYYY-MM-DD」にvarchar型に結果を変換することによって、この作業を取得するために管理してきました:

select left(convert(varchar,dateadd(day,case when datepart(dw,getdate()) in (5,6) then 4 else 2 end,getdate()),126),10) [parameter] 

影響を受けるレポートの量が多いため、すべてのレポートでこれを行うのは必ずしも現実的ではありません。

原因と潜在的な修正のための任意のアイデア?

答えて

0

私はエラーを生成し、あなたのコードに理由を見ることができます。サーバー上のSET DATEFIRSTの構成のために間違った結果が得られます。

まず、

SELECT @@DATEFIRST 

であなたのDatadirstを確認し、それ

DECLARE @Date date = '20170914' -- Thursday 


SET DATEFIRST 1 ; 
SELECT datepart(dw,@Date) 
--Result 4 

SET DATEFIRST 2 ; 
SELECT datepart(dw,@Date) 
--Result 3 

SET DATEFIRST 3 ; 
SELECT datepart(dw,@Date) 
--Result 2 

SET DATEFIRST 4 ; 
SELECT datepart(dw,@Date) 
--Result 1 

SET DATEFIRST 5 ; 
SELECT datepart(dw,@Date) 
--Result 7 

SET DATEFIRST 6 ; 
SELECT datepart(dw,@Date) 
--Result 6 

SET DATEFIRST 7 ; 
SELECT datepart(dw,@Date) 
--Result 5 

SET DATEFIRST (Transact-SQL)

SET DATEFORMAT

SET LANGUAGE (Transact-SQL)

ようなあなたのコードでそれを設定します
+0

私は参照してください:しかし、何が起こっているように私が投稿したコードによって返された日付が正常に動作しているという違いがある理由はわかりません。 間違っているのは、データをハードコードしていないにもかかわらず、日付を間違った形式でハードコードしたように動作していることです。 – Boydus

+0

私はfisrtdateを推測しました。なぜならあなたは説明だけのエラーを投稿していなかったし、数週間前に同様の問題があり、それが解決策だったからです。 –

+0

SSRSは実際に私にエラーが何であるか教えてくれないので、私はエラーを投稿しませんでした。それが言うのは次のとおりです。 '完了:合計1件が処理されました。 1エラー。 – Boydus

関連する問題