Buenas tardes, fuera bueno que pongas como vas con tu consulta, ya que parece que no has intentado hacerlo, bueno aca te mando un ejemplo, espero te ayude.
Código SQL:
Ver originalDECLARE @tempo TABLE(
num_cable INT,
estado VARCHAR(30)
);
INSERT INTO @tempo(num_cable, estado) VALUES(1,'libre');
INSERT INTO @tempo(num_cable, estado) VALUES(1,'ocupado');
INSERT INTO @tempo(num_cable, estado) VALUES(1,'ocupado');
INSERT INTO @tempo(num_cable, estado) VALUES(2,'ocupado');
INSERT INTO @tempo(num_cable, estado) VALUES(2,'ocupado');
INSERT INTO @tempo(num_cable, estado) VALUES(2,'ocupado');
INSERT INTO @tempo(num_cable, estado) VALUES(3,'libre');
INSERT INTO @tempo(num_cable, estado) VALUES(3,'libre');
INSERT INTO @tempo(num_cable, estado) VALUES(3,'libre');
INSERT INTO @tempo(num_cable, estado) VALUES(4,'ocupado');
INSERT INTO @tempo(num_cable, estado) VALUES(4,'libre');
INSERT INTO @tempo(num_cable, estado) VALUES(4,'libre');
SELECT num_cable, [ocupado], [libre]
FROM @tempo
PIVOT
(
COUNT(estado)
FOR estado IN
([ocupado], [libre])
)AS pvt
GO
Saludos.