sql >> Database >  >> RDS >> Sqlserver

Eenvoudig draaivoorbeeld

SELECT MasterID, 
  [Basic Phone] = MAX([Basic Phone]),
  [Pixi] = MAX([Pixi]),
  [Blackberry] = MAX([Blackberry])
FROM
(
  SELECT MasterID, [Basic Phone],[Pixi],[Blackberry]
  FROM dbo.Services AS s
  PIVOT 
  (
    MAX([Status]) FOR [Type] IN ([Basic Phone],[Blackberry],[Pixi])
  ) AS p
) AS x
GROUP BY MasterID;

Of eenvoudiger - en met dank aan @YS. voor het wijzen op mijn redundantie.

SELECT MasterID, 
  [Basic Phone],
  [Pixi],
  [Blackberry]
FROM
(
  SELECT MasterID, Status, Type FROM dbo.Services
)
AS s
PIVOT 
(
  MAX([Status]) FOR [Type] IN ([Basic Phone], [Blackberry], [Pixi])
) AS p;



  1. SQL-filter alleen toevoegen als een variabele niet null is

  2. Canonical Function EntityFunctions.TruncateTime bestaat niet in MYSQL

  3. Geeft COUNT(*) altijd een resultaat?

  4. Hoe kan ik mijn databaserecord sorteren en toevoegen?