Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengubah Berbilang Lajur dalam T-SQL untuk Mengubah Data Nisbah Kewangan?

Bagaimana untuk Mengubah Berbilang Lajur dalam T-SQL untuk Mengubah Data Nisbah Kewangan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 01:54:47260semak imbas

How to Pivot Multiple Columns in T-SQL to Transform Financial Ratio Data?

Pivot Multiple Lajur dalam TSQL

Apabila bekerja dengan pangkalan data hubungan, selalunya perlu mengubah data untuk memudahkan analisis atau laporan mengenai. Satu cara untuk melakukan ini ialah dengan memutar data, yang melibatkan penggiliran baris ke dalam lajur dan sebaliknya.

Pertimbangkan jadual berikut yang mengandungi nisbah kewangan, keputusan, markah dan gred:

RATIO RESULT SCORE GRADE
Current Ratio 1.294 60 Good
Gearing Ratio 0.3384 70 Good
Performance Ratio 0.0427 50 Satisfactory
TOTAL NULL 180 Good

Untuk memutar data ini dan mengekalkan semua label, kita perlu menyahpangsi hasil, skor dan lajur gred supaya setiap baris mempunyai satu nilai dalam setiap lajur. Ini boleh dicapai menggunakan fungsi UNPIVOT atau CROSS APPLY, bergantung pada versi SQL Server yang anda gunakan.

Setelah data dinyahpivot, kami boleh menggunakan fungsi PIVOT untuk memutarkan baris ke dalam lajur. Sintaks akan serupa dengan yang berikut:

SELECT ratio = col,
[current ratio], [gearing ratio], [performance ratio], total
FROM
(
  SELECT ratio, col, value
  FROM GRAND_TOTALS
  CROSS APPLY
  (
    SELECT 'result', CAST(result AS VARCHAR(10)) UNION ALL
    SELECT 'score', CAST(score AS VARCHAR(10)) UNION ALL
    SELECT 'grade', grade
  ) c(col, value)
) d
PIVOT
(
  MAX(value)
  FOR ratio IN ([current ratio], [gearing ratio], [performance ratio], total)
) piv;

Output yang terhasil ialah jadual dengan satu baris untuk setiap nisbah dan lajur untuk nisbah semasa, nisbah penggearan, nisbah prestasi, jumlah, skor dan gred:

RATIO CURRENT RATIO GEARING RATIO PERFORMANCE RATIO TOTAL SCORE GRADE
grade Good Good Satisfactory Good NULL NULL
result 1.29400 0.33840 0.04270 NULL NULL NULL
score 60.00000 70.00000 50.00000 180.00000 NULL NULL

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Berbilang Lajur dalam T-SQL untuk Mengubah Data Nisbah Kewangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn