ホームページ >データベース >mysql チュートリアル >SQL Server で複数の列 (売上、株価、目標) を同時にピボットする方法は?

SQL Server で複数の列 (売上、株価、目標) を同時にピボットする方法は?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-02 13:40:38153ブラウズ

How to Pivot Multiple Columns (Sales, Stock, Target) Simultaneously in SQL Server?

SQL Server で複数の列をピボットする方法

問題:

アイテム カテゴリ (パネル、AC、Ref など) と売上などのデータを表す列を含むテーブル。ストックとターゲット。このデータを、カテゴリが行になり、列が各カテゴリ (売上、在庫、目標) のそれぞれのデータを保持するピボット形式に変換したいと考えています。

解決策:

これを実現するには、SQL で複数のピボット ステートメントを利用します。サーバー:

SELECT
*
FROM
(
  SELECT 
   Branch,
   Category,
   Category+'1' As Category1,
   Category+'2' As Category2,
   Sales, 
   Stock, 
   Target
  FROM TblPivot
 ) AS P

-- For Sales
 PIVOT
 (
   SUM(Sales) FOR Category IN ([Panel], [AC], [Ref])
 ) AS pv1

-- For Stock
 PIVOT
 (
   SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1])
 ) AS pv2

-- For Target
 PIVOT
 (
   SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2])
 ) AS pv3
 GO

説明:

  1. 内部 SELECT: 元のテーブルからブランチ名を含む必要なデータをフェッチします
  2. 列名前の変更: その後のピボットを容易にするために、カテゴリ列の名前をサフィックス (「1」と「2」) で変更します。
  3. 最初のピボット (pv1): 売上列のピボット、グループ化カテゴリ別のデータ。
  4. 2 番目のピボット(pv2): 新しく名前変更されたカテゴリ列 (例:Panel1) を使用したスト​​ック列のピボット。
  5. 3 番目のピボット (pv3): 新しく名前変更されたカテゴリ列を使用したターゲット列のピボットカテゴリ列の名前を変更しました (例:Panel2)。

ピボットが完了したら、必要に応じて結果を集計したり、さらなるデータ操作を実行したりできます。

以上がSQL Server で複数の列 (売上、株価、目標) を同時にピボットする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。