Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ruota utilizzando SQL Server 2000

Mi rendo conto che ha due anni, ma mi dà fastidio che la risposta accettata richieda l'utilizzo di SQL dinamico e la risposta più votata non funzionerà:

Select P.ProductId, P.Name
    , Min( Case When PM.MetaKey = 'A' Then PM.MetaValue End ) As A
    , Min( Case When PM.MetaKey = 'B' Then PM.MetaValue End ) As B
    , Min( Case When PM.MetaKey = 'C' Then PM.MetaValue End ) As C
From Products As P
        Join ProductMeta As PM
            On PM.ProductId = P.ProductId
Group By P.ProductId, P.Name

devi usa un Raggruppa per o otterrai un risultato scaglionato. Se si utilizza un Raggruppa per, è necessario racchiudere ogni colonna che non è nella clausola Raggruppa per in una funzione di aggregazione (o una sottoquery).