まだT-SQLの初心者ですが、いくつかのジョインを持つ比較的単純なSELECTステートメントがあります。私はそれを動的ピボットテーブルに入れようとしています。この声明の目的は、新しいデータと古いデータが同じデータの異なる単語のペアに過ぎない、非営利のサービスとその結果を示すことです。ジョインでダイナミックSQLピボットテーブルを実行する方法を理解しようとしています
SELECT Service.Name,
OutcomeIndicator."Desc" AS OutcomeDesc,
NewOutcomeIndicator.Description As NewOutcomeDesc
FROM service
FULL OUTER JOIN OutcomeIndicator ON ServiceOutcomeIndicator.OutcomeIndicatorID=OutcomeIndicator.OutcomeIndicatorID
FULL OUTER JOIN NewOutcomeIndicator ON NewOutcomeIndicatorMapping.NewOutcomeIndicatorID=NewOutcomeIndicator.NewOutcomeIndicatorID
私はこの文を実行したときしかし、それは明らかに、各サービスは、複数のアウトカム/ NewOutcomeのペアを持つことができるためのServiceNameに複数の値を含めて、すべての行を返します。
+--------------+-----------------+-------------------+-----------------+-------------------+--------------+---------------------+
| ServiceName | OutcomeDesc1 | NewOutcomeDesc1 | OutcomeDesc2 | NewOutcomeDesc2 | OutcomeDesc3 | NewOutcomeDesc3 |
+--------------+-----------------+-------------------+-----------------+-------------------+--------------+---------------------+
| Service34 | OutcomeDesc14 | NewOutcomeDesc14 | OutcomeDesc12 | NewOutcomeDesc12 | | |
| Service35 | OutcomeDesc4 | NewOutcomeDesc4 | | | | |
| Service44 | OutcomeDesc80 | NewOutcomeDesc80 | OutcomeDesc99 | NewOutcomeDesc99 | | |
| Service51 | OutcomeDesc50 | NewOutcomeDesc50 | | | | |
+--------------+-----------------+-------------------+-----------------+-------------------+--------------+---------------------+
私はこれを行うには、私のSQLステートメントを変更する方法上の任意のアイデア:これはExcelにコピーされているため、レポート作成のため
+-------------+----------------+------------------+
| ServiceName | OutcomeDesc1 | NewOutcomeDesc1 |
+-------------+----------------+------------------+
| Service34 | OutcomeDesc14 | NewOutcomeDesc14 |
| Service34 | OutcomeDesc12 | NewOutcomeDesc12 |
| Service35 | OutcomeDesc4 | NewOutcomeDesc4 |
| Service44 | OutcomeDesc80 | NewOutcomeDesc80 |
| Service44 | OutcomeDesc99 | NewOutcomeDesc99 |
| Service51 | OutcomeDesc50 | NewOutcomeDesc50 |
は、私はより多くのこのような何かをしたいですか?私はサービスごとに3つ以上の結果がないことを知っているので、私は静的に列の数を定義することができます。
SQLで静的ピボットテーブルを実行する方法を理解していますが、何百ものサービスと結果があるため、各サービス値を統計的に列に割り当てるロジックを定義することはできません。動的なピボットテーブルは私が理解するのが少し難しいですが、私はこれを行ったチュートリアルを見つけることができませんでしたが、ジョインステートメントも含まれていました。
助けてください。
あなたが事前に列の数を知っているので、あなたは、動的なピボットを必要としません。動的ピボットは、テーブルの値に基づいて列を作成するときに使用されます。 –