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ď č. 1Je 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.