hice este código
UNION pero me repite las filas:
SELECT UNIDAD AS UND,TURNO AS T,
CASE WHEN HSV1 <> '' THEN CONVERT(VARCHAR(5), HSV1, 108) ELSE '--:--' END AS HSV1,
CASE WHEN HSV2 <> '' THEN CONVERT(VARCHAR(5), HSV2, 108) ELSE '--:--' END AS HSV2,
CASE WHEN HSV3 <> '' THEN CONVERT(VARCHAR(5), HSV3, 108) ELSE '--:--' END AS HSV3,
SUM(CASE WHEN HSV1 BETWEEN '03:00' AND '03:59' THEN VENDIDOSV1 ELSE 0 END) AS '03:04',
SUM(CASE WHEN HSV1 BETWEEN '04:00' AND '04:59' THEN VENDIDOSV1 ELSE 0 END) AS '04:05',
SUM(CASE WHEN HSV1 BETWEEN '05:00' AND '05:59' THEN VENDIDOSV1 ELSE 0 END) AS '05:06',
SUM(CASE WHEN HSV1 BETWEEN '06:00' AND '06:59' THEN VENDIDOSV1 ELSE 0 END) AS '06:07',
SUM(CASE WHEN HSV1 BETWEEN '07:00' AND '07:59' THEN VENDIDOSV1 ELSE 0 END) AS '07:08',
SUM(CASE WHEN HSV1 BETWEEN '08:00' AND '08:59' THEN VENDIDOSV1 ELSE 0 END) AS '08:09',
SUM(CASE WHEN HSV1 BETWEEN '09:00' AND '09:59' THEN VENDIDOSV1 ELSE 0 END) AS '09:10',
SUM(CASE WHEN HSV1 BETWEEN '10:00' AND '10:59' THEN VENDIDOSV1 ELSE 0 END) AS '10:11',
SUM(CASE WHEN HSV1 BETWEEN '11:00' AND '11:59' THEN VENDIDOSV1 ELSE 0 END) AS '11:12',
SUM(CASE WHEN HSV1 BETWEEN '12:00' AND '12:59' THEN VENDIDOSV1 ELSE 0 END) AS '12:13',
SUM(CASE WHEN HSV1 BETWEEN '13:00' AND '13:59' THEN VENDIDOSV1 ELSE 0 END) AS '13:14',
SUM(CASE WHEN HSV1 BETWEEN '14:00' AND '14:59' THEN VENDIDOSV1 ELSE 0 END) AS '14:15',
SUM(CASE WHEN HSV1 BETWEEN '15:00' AND '15:59' THEN VENDIDOSV1 ELSE 0 END) AS '15:16',
SUM(CASE WHEN HSV1 BETWEEN '16:00' AND '16:59' THEN VENDIDOSV1 ELSE 0 END) AS '16:17',
SUM(CASE WHEN HSV1 BETWEEN '17:00' AND '17:59' THEN VENDIDOSV1 ELSE 0 END) AS '17:18',
SUM(CASE WHEN HSV1 BETWEEN '18:00' AND '18:59' THEN VENDIDOSV1 ELSE 0 END) AS '18:19',
SUM(CASE WHEN HSV1 BETWEEN '19:00' AND '19:59' THEN VENDIDOSV1 ELSE 0 END) AS '19:20',
SUM(CASE WHEN HSV1 BETWEEN '20:00' AND '20:59' THEN VENDIDOSV1 ELSE 0 END) AS '20:21',
SUM(CASE WHEN HSV1 BETWEEN '21:00' AND '21:59' THEN VENDIDOSV1 ELSE 0 END) AS '21:22',
SUM(CASE WHEN HSV1 BETWEEN '22:00' AND '22:59' THEN VENDIDOSV1 ELSE 0 END) AS '22:23',
SUM(CASE WHEN HSV1 BETWEEN '23:00' AND '23:59' THEN VENDIDOSV1 ELSE 0 END) AS '23:24'
FROM TRACKINGBOLETAJE
WHERE FECHA = '20140723'
AND RUTA = 'R-217'
AND TURNO IN ('1','2')
GROUP BY UNIDAD,TURNO,HSV1,HSV2,HSV3
UNION
SELECT UNIDAD AS UND,TURNO AS T,
CASE WHEN HSV1 <> '' THEN CONVERT(VARCHAR(5), HSV1, 108) ELSE '--:--' END AS HSV1,
CASE WHEN HSV2 <> '' THEN CONVERT(VARCHAR(5), HSV2, 108) ELSE '--:--' END AS HSV2,
CASE WHEN HSV3 <> '' THEN CONVERT(VARCHAR(5), HSV3, 108) ELSE '--:--' END AS HSV3,
SUM(CASE WHEN HSV2 BETWEEN '03:00' AND '03:59' THEN VENDIDOSV2 ELSE 0 END) AS '03:04',
SUM(CASE WHEN HSV2 BETWEEN '04:00' AND '04:59' THEN VENDIDOSV2 ELSE 0 END) AS '04:05',
SUM(CASE WHEN HSV2 BETWEEN '05:00' AND '05:59' THEN VENDIDOSV2 ELSE 0 END) AS '05:06',
SUM(CASE WHEN HSV2 BETWEEN '06:00' AND '06:59' THEN VENDIDOSV2 ELSE 0 END) AS '06:07',
SUM(CASE WHEN HSV2 BETWEEN '07:00' AND '07:59' THEN VENDIDOSV2 ELSE 0 END) AS '07:08',
SUM(CASE WHEN HSV2 BETWEEN '08:00' AND '08:59' THEN VENDIDOSV2 ELSE 0 END) AS '08:09',
SUM(CASE WHEN HSV2 BETWEEN '09:00' AND '09:59' THEN VENDIDOSV2 ELSE 0 END) AS '09:10',
SUM(CASE WHEN HSV2 BETWEEN '10:00' AND '10:59' THEN VENDIDOSV2 ELSE 0 END) AS '10:11',
SUM(CASE WHEN HSV2 BETWEEN '11:00' AND '11:59' THEN VENDIDOSV2 ELSE 0 END) AS '11:12',
SUM(CASE WHEN HSV2 BETWEEN '12:00' AND '12:59' THEN VENDIDOSV2 ELSE 0 END) AS '12:13',
SUM(CASE WHEN HSV2 BETWEEN '13:00' AND '13:59' THEN VENDIDOSV2 ELSE 0 END) AS '13:14',
SUM(CASE WHEN HSV2 BETWEEN '14:00' AND '14:59' THEN VENDIDOSV2 ELSE 0 END) AS '14:15',
SUM(CASE WHEN HSV2 BETWEEN '15:00' AND '15:59' THEN VENDIDOSV2 ELSE 0 END) AS '15:16',
SUM(CASE WHEN HSV2 BETWEEN '16:00' AND '16:59' THEN VENDIDOSV2 ELSE 0 END) AS '16:17',
SUM(CASE WHEN HSV2 BETWEEN '17:00' AND '17:59' THEN VENDIDOSV2 ELSE 0 END) AS '17:18',
SUM(CASE WHEN HSV2 BETWEEN '18:00' AND '18:59' THEN VENDIDOSV2 ELSE 0 END) AS '18:19',
SUM(CASE WHEN HSV2 BETWEEN '19:00' AND '19:59' THEN VENDIDOSV2 ELSE 0 END) AS '19:20',
SUM(CASE WHEN HSV2 BETWEEN '20:00' AND '20:59' THEN VENDIDOSV2 ELSE 0 END) AS '20:21',
SUM(CASE WHEN HSV2 BETWEEN '21:00' AND '21:59' THEN VENDIDOSV2 ELSE 0 END) AS '21:22',
SUM(CASE WHEN HSV2 BETWEEN '22:00' AND '22:59' THEN VENDIDOSV2 ELSE 0 END) AS '22:23',
SUM(CASE WHEN HSV2 BETWEEN '23:00' AND '23:59' THEN VENDIDOSV2 ELSE 0 END) AS '23:24'
FROM TRACKINGBOLETAJE
WHERE FECHA = '20140723'
AND RUTA = 'R-217'
AND TURNO IN ('1','2')
GROUP BY UNIDAD,TURNO,HSV1,HSV2,HSV3
UNION
SELECT UNIDAD AS UND,TURNO AS T,
CASE WHEN HSV1 <> '' THEN CONVERT(VARCHAR(5), HSV1, 108) ELSE '--:--' END AS HSV1,
CASE WHEN HSV2 <> '' THEN CONVERT(VARCHAR(5), HSV2, 108) ELSE '--:--' END AS HSV2,
CASE WHEN HSV3 <> '' THEN CONVERT(VARCHAR(5), HSV3, 108) ELSE '--:--' END AS HSV3,
SUM(CASE WHEN HSV3 BETWEEN '03:00' AND '03:59' THEN VENDIDOSV3 ELSE 0 END) AS '03:04',
SUM(CASE WHEN HSV3 BETWEEN '04:00' AND '04:59' THEN VENDIDOSV3 ELSE 0 END) AS '04:05',
SUM(CASE WHEN HSV3 BETWEEN '05:00' AND '05:59' THEN VENDIDOSV3 ELSE 0 END) AS '05:06',
SUM(CASE WHEN HSV3 BETWEEN '06:00' AND '06:59' THEN VENDIDOSV3 ELSE 0 END) AS '06:07',
SUM(CASE WHEN HSV3 BETWEEN '07:00' AND '07:59' THEN VENDIDOSV3 ELSE 0 END) AS '07:08',
SUM(CASE WHEN HSV3 BETWEEN '08:00' AND '08:59' THEN VENDIDOSV3 ELSE 0 END) AS '08:09',
SUM(CASE WHEN HSV3 BETWEEN '09:00' AND '09:59' THEN VENDIDOSV3 ELSE 0 END) AS '09:10',
SUM(CASE WHEN HSV3 BETWEEN '10:00' AND '10:59' THEN VENDIDOSV3 ELSE 0 END) AS '10:11',
SUM(CASE WHEN HSV3 BETWEEN '11:00' AND '11:59' THEN VENDIDOSV3 ELSE 0 END) AS '11:12',
SUM(CASE WHEN HSV3 BETWEEN '12:00' AND '12:59' THEN VENDIDOSV3 ELSE 0 END) AS '12:13',
SUM(CASE WHEN HSV3 BETWEEN '13:00' AND '13:59' THEN VENDIDOSV3 ELSE 0 END) AS '13:14',
SUM(CASE WHEN HSV3 BETWEEN '14:00' AND '14:59' THEN VENDIDOSV3 ELSE 0 END) AS '14:15',
SUM(CASE WHEN HSV3 BETWEEN '15:00' AND '15:59' THEN VENDIDOSV3 ELSE 0 END) AS '15:16',
SUM(CASE WHEN HSV3 BETWEEN '16:00' AND '16:59' THEN VENDIDOSV3 ELSE 0 END) AS '16:17',
SUM(CASE WHEN HSV3 BETWEEN '17:00' AND '17:59' THEN VENDIDOSV3 ELSE 0 END) AS '17:18',
SUM(CASE WHEN HSV3 BETWEEN '18:00' AND '18:59' THEN VENDIDOSV3 ELSE 0 END) AS '18:19',
SUM(CASE WHEN HSV3 BETWEEN '19:00' AND '19:59' THEN VENDIDOSV3 ELSE 0 END) AS '19:20',
SUM(CASE WHEN HSV3 BETWEEN '20:00' AND '20:59' THEN VENDIDOSV3 ELSE 0 END) AS '20:21',
SUM(CASE WHEN HSV3 BETWEEN '21:00' AND '21:59' THEN VENDIDOSV3 ELSE 0 END) AS '21:22',
SUM(CASE WHEN HSV3 BETWEEN '22:00' AND '22:59' THEN VENDIDOSV3 ELSE 0 END) AS '22:23',
SUM(CASE WHEN HSV3 BETWEEN '23:00' AND '23:59' THEN VENDIDOSV3 ELSE 0 END) AS '23:24'
FROM TRACKINGBOLETAJE
WHERE FECHA = '20140723'
AND RUTA = 'R-217'
AND TURNO IN ('1','2')
GROUP BY UNIDAD,TURNO,HSV1,HSV2,HSV3
ORDER BY TURNO,HSV1
ESTE ES EL RESULTADO:
