CrystalレポートからSSRS(Sql Server Reporting Services)にレポートを変換する状況にあります。SSRS:同じ名前の列を返すストアドプロシージャを使用したレポートサービス
元のレポートは、同じ正確な名前の列を返したストアドプロシージャの結果を示しました。
これはどのように可能ですか?私はあなたを説明します:
前のプログラマーは恐ろしいハックをしました。選択結果を#TempTableに入れます。
のは#TempTableが
SELECT a,b,c INTO #TempTable FROM mytable
を行い詰め込むために選択がその後、ストアドプロシージャの最後に、これが返されているものであると仮定しよう:
SELECT aliasTemp.*, a, b, c from #TempTable aliasTemp
返された結果が
です
これはSQLの点では厄介ですが、私はできません。c、c、a、b、c私の顧客が実稼働環境に変更を加えることは望まないので、データベースをハンゲイズしてください。
私はこれを取得レポートのデータソースとして、このストアドプロシージャを追加しよう:
サービスを報告しながらすると、そのフィールドを取得しようと言う自明のエラーですストアドプロシージャが返されます。重複した名前の列が見つかると機能しません。検索された余分な列を回避するSQL SELECTなど
サービスを報告すると、あなたは、SQLクエリまたはストアドプロシージャの両方を使用することができますので、私が取り払わは解決策になる可能性報告書に直接このクエリを実行することになる
CREATE TABLE #tmpBus
(
a INT,
b INT,
c INT
)
INSERT INTO #tempTable
Exec StupidStoredProcedure'Params'
同じ名前を持ち、最初の3つだけを抽出します。
しかし、抽出された列は一時表と一致しません。
これをどのように達成できますか?
を助けようとした人へ
感謝。変換が完了したら古いものを取り除く。何か不足していますか?これを難しくする必要はなく、既に存在するハックを追加することもできます。修理する! –
顧客がデータベース/サーバサイドコードの変更を拒否したため、私は変更を行うことができません。そうしないと、ストアドプロシージャが修正されてしまいます。 –