/ / Ako v databáze prepnúť „hodnotu riadkov“ na „stĺpce“? - sql, sql-server, excel, excel-vba, excel-formula, vba

Ako v databáze prepnúť „hodnotu riadkov“ na „stĺpce“? - sql, sql-server, excel, excel-vba, excel-formula, vba

Používam SQL Server 2008. Tu je môj SQL:

SELECT [CIExtendedAttributeID]
,[dbo].[CIExtendedAttribute].[CreatedBy]
,[dbo].[CIExtendedAttribute].[CreationDate]
,[dbo].[CIExtendedAttribute].[ModifiedBy]
,[dbo].[CIExtendedAttribute].[ModificationDate]
,[ConfigurationItemID]
,[Value]
,[dbo].[CIExtendedAttribute].[CIExtendedAttributeTypeID]
,[dbo].[CIExtendedAttributeType].DescrEN
FROM [dbo].[CIExtendedAttribute]
INNER JOIN [dbo].[CIExtendedAttributeType] ON [dbo].[CIExtendedAttribute].CIExtendedAttributeTypeID = [dbo].

[CIExtendedAttributeType].[CIExtendedAttributeTypeID]

the result :

CIExtendedAttributeID CIExtendedAttributeTypeID          DescrEN                       VALUE
0                              1                         MAC adress                  000B6XXXXX8
1                              1                         ESN                         100B6XXXXX8
2                              2                         Display                     19"
3                              2                         MAC adress                  100B6XXXXX9


I would like :

TESTCIExtendedAttributeID  TESTCIExtendedAttributeTypeID    MAC adress      ESN            Display
0                              1                           000B6XXXXX8     100B6XXXXX8    NULL
2                              2                           100B6XXXXX9            NULL    19"

Chcel by som prepnúť hodnotu riadkov na stĺpce. Príklad je veľmi ľahký, ale realita je iná vec. Môže to byť v inej tabuľke alebo v čomkoľvek inom. Môžem exportovať aj do programu Excel.

SQL Fiddle ## tu.

odpovede:

0 pre odpoveď č. 1

Je v tom dobrý príklad odkaz o tom, ako urobiť SQL Pivot. Vzorka, ktorú poskytujú, je:

SELECT * FROM (
SELECT
year(invoiceDate) as [year],left(datename(month,invoicedate),3)as [month],
InvoiceAmount as Amount
FROM Invoice
) as s
PIVOT
(
SUM(Amount)
FOR [month] IN (jan, feb, mar, apr,
may, jun, jul, aug, sep, oct, nov, dec)
)AS pivot

Nechám vás s tým pohrať sa, aby ste dostali posledný dotaz, ktorý potrebujete pre váš zložitý scenár.