It should be something similar to this query:
DECLARE @tmp TABLE (OWNER VARCHAR(30), VECH VARCHAR(30), [VECH NO] INT)
INSERT INTO @tmp (OWNER, VECH, [VECH NO])
VALUES('SIVA', 'BUS', 11),
('SIVA', 'BUS', 22),
('SIVA', 'BUS', 33),
('SIVA', 'CAR', 44),
('SIVA', 'CAR', 55),
('SIVA', 'CAR', 66),
('SIVA', 'VAN', 77),
('SIVA', 'VAN', 88),
('SIVA', 'VAN', 99)
SELECT RowNo, OWNER, [BUS], [CAR], [VAN]
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY VECH ORDER BY [VECH NO]) AS RowNo, OWNER, VECH, [VECH NO]
FROM @tmp
) AS DT
PIVOT (MAX([Vech No]) FOR VECH IN ([BUS], [CAR], [VAN])) AS PT
If there is more than 3 destination columns, you need to use
dynamic pivot[
^] ;)
Result:
1 SIVA 11 44 77
2 SIVA 22 55 88
3 SIVA 33 66 99