Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Обикновена обобщена проба

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;

Или по-просто - и кредит на @YS. за това, че ми посочи излишъка.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сравняване на облачни виртуални машини с управлявана облачна база данни

  2. Класически проблем с ASP при свързване към отдалечена база данни на SQL Server

  3. Как да използвам тригер за актуализиране, за да актуализирам друга таблица?

  4. Как мога да запазя CDATA тагове, когато съхранявам резултати от заявка в Xml променлива?

  5. Получаване на зависимости от кръстосани бази данни на SQL Server