Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Perlu bantuan T-SQL untuk mengonversi Baris dari beberapa tabel menjadi Kolom dengan nilai di Sql Server 2005

Pikiran pertama saya adalah meningkatkan skema dan apakah Anda benar-benar perlu melakukan ini.

Untuk menyederhanakan pertanyaan, sepertinya Anda ingin mengatur nama kolom berdasarkan gabungan ke mstBCE. Anda tidak memerlukan relasi karena jumlah kolom dalam tblBCE adalah tetap. Alih-alih gunakan sql dinamis untuk mengatur nama kolom yang dipilih dari mstBCE yang diputar ke satu baris.

DECLARE @sql nvarchar(4000); 
SELECT @sql = N'SELECT u.[username], u.[department], 
b.[Option1TB] as [' + pvt.[1] + N'], b.[Option1], 
b.[Option2TB] as [' + pvt.[2] + N'], b.[Option2], 
b.[Option3TB] as [' + pvt.[3] + N'], b.[Option3] 
FROM tblBCE as b 
JOIN tblUser as u ON b.[UserID] = u.[userid]; ' 
FROM (
    SELECT [tabconfigid], [tabdata] 
    FROM mstBCE 
    WHERE [tabType] = N'BCE'
) as m 
PIVOT ( MIN(m.[tabdata]) FOR m.[tabconfigid] IN ([1], [2], [3]) ) as pvt; 

EXEC (@sql); 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menghasilkan Data Uji di SQL Server

  2. Pernyataan Penggabungan SQL

  3. Isi Dataset Dengan Nama Tabel Dari Prosedur Tersimpan

  4. Menghindari kebuntuan SQL dengan penyetelan kueri:Saran dari Brent Ozar

  5. Gunakan TYPEPROPERTY() untuk Mengembalikan Informasi tentang Tipe Data di SQL Server