sql >> データベース >  >> RDS >> Sqlserver

Sql Server 2008 クロス集計クエリ

    これは、「ピボット」演算子を使用して実行できるはずです。このようなもの (ただし、スペルや構文の詳細を消していると思いますが...):

    select catTitle, [1] as site1, [2] as site2, [3] as site3, [4] as site4, [5] as site5
      from (select category.catTitle, equipment.quantity, site.title
              from equipment
                inner join site
                  on (equipment.siteid = site.siteid)
                inner join category
                  on (category.catid = equipment.catid)
            ) 
      pivot
      (
      sum (quantity)
        for equipment.siteid in ( [1], [2], [3], [4], [5] )
      ) as pvt
    order by pvt.category;
      

    これに関する問題は、クエリに含めたいサイト ID の正確なセットを知る必要があることです。より動的なクロス集計 (Excel で取得できるようなもの) が必要な場合は、クエリ テキストを文字列として生成し、sp_executesql を使用して実行する必要があります。生成されたテキストには、「[1]、[2]、[3]、[4]、[5]...」および「[1] をサイト 1 として、[2] をサイト 2 として」をできるだけ多く含めます。 ."必要に応じて。



    1. 外部ライブラリのJarですが、コードにインポートできません

    2. 2つの日付の間の平日(日曜日、月曜日、火曜日)の数を取得しますSQL

    3. クエリリンクサーバーにIPを入力する方法

    4. 読み取り専用のOracleホーム