0

データベーステーブルの私のデータ..。

SELECT [Quote Reference Number] 
      ,[Value]
      ,[Method]
      ,[Country]
      ,[SubRegion]
      ,[Route 1 or Route2]
      ,[TYPE A or B ]
  FROM Table 1 

私の希望する概要ビュー

世界観

Subregion | Country | Count of Route1 + Type A quotes | Count of Route1 + Type B quotes|  Count of Route2 + Type A quotes | Count of Route2 + Type B quotes| All Routes & Types |

EMEAビュー

Subregion | Country | Count of Route1 + Type A quotes | Count of Route1 + Type B quotes| Count of Route2 + Type A quotes | Count of Route2 + Type B quotes| All Routes & Types |

2行のテーブルを作成し、すべてのフィールドにデータを入力するために多くのSQLクエリを実行することでこれを行うことができますが、データベースでピボットすることで実行できると言われましたが、正確にはわかりませんか?

誰かが何か援助を提供できますか?

4

1 に答える 1

1

FOR... IN句には条件文ではなく、フィールドと値のセットがそれぞれ含まれているため、この場合のピボットは困難です(ただし不可能ではありません) 。あなたはsum/case例えばでより良いです

SELECT 
      [Country]
      ,[SubRegion]
      ,SUM (CASE WHEN [Route 1 or Route2] = 'Route1' AND [TYPE A or B ] = 'A' 
             THEN 1 ELSE 0 END)
              as [Count of Route1 + Type A quotes ]
      ,SUM (CASE WHEN [Route 1 or Route2] = 'Route1' AND [TYPE A or B ] = 'B' 
             THEN 1 ELSE 0 END)
              as [Count of Route1 + Type B quotes ]
     ,SUM (CASE WHEN [Route 1 or Route2] = 'Route2' AND [TYPE A or B ] = 'A' 
             THEN 1 ELSE 0 END)
              as [Count of Route2 + Type A quotes ]
      ,SUM (CASE WHEN [Route 1 or Route2] = 'Route2' AND [TYPE A or B ] = 'B' 
             THEN 1 ELSE 0 END)
              as [Count of Route2 + Type B quotes]
      ,COUNT(*)  All Routes & Types
  FROM [Table 1]
  GROUP BY
       [Country]
      ,[SubRegion]
于 2012-05-30T17:46:21.267 に答える