sql >> Base de Datos >  >> RDS >> Sqlserver

Pivote utilizando SQL Server 2000

Me doy cuenta de que esto tiene dos años, pero me molesta que la respuesta aceptada requiera el uso de SQL dinámico y la respuesta más votada no funcionará:

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

Usted debe use Agrupar por o obtendrá un resultado escalonado. Si está utilizando Group By, debe envolver cada columna que no está en la cláusula Group By en una función agregada (o una subconsulta).