请大家看看,下面的语句有没有可以优化的地方,感觉速度很慢
SELECT (SELECT ParentID
FROM stable
WHERE (cpid = a.cpid)) AS ParentID, cpid, CONVERT(varchar(10), doTime, 120) AS rq,
(SELECT TOP (1) doTime
FROM t_table
WHERE (cpid = a.cpid) AND (CONVERT(varchar(10), doTime, 120) = CONVERT(varchar(10), a.doTime, 120)) AND (CONVERT(varchar(8), doTime, 24)
BETWEEN '00:00:00' AND '03:59:59')
ORDER BY dtp) AS T0_4,
(SELECT TOP (1) doTime
FROM t_table AS t_table_5
WHERE (cpid = a.cpid) AND (CONVERT(varchar(10), doTime, 120) = CONVERT(varchar(10), a.doTime, 120)) AND (CONVERT(varchar(8), doTime, 24)
BETWEEN '04:00:00' AND '07:59:59')
ORDER BY dtp) AS T4_8,
(SELECT TOP (1) doTime
FROM t_table AS t_table_4
WHERE (cpid = a.cpid) AND (CONVERT(varchar(10), doTime, 120) = CONVERT(varchar(10), a.doTime, 120)) AND (CONVERT(varchar(8), doTime, 24)
BETWEEN '08:00:00' AND '11:59:59')
ORDER BY dtp) AS T8_12,
(SELECT TOP (1) doTime
FROM t_table AS t_table_3
WHERE (cpid = a.cpid) AND (CONVERT(varchar(10), doTime, 120) = CONVERT(varchar(10), a.doTime, 120)) AND (CONVERT(varchar(8), doTime, 24)
BETWEEN '12:00:00' AND '15:59:59')
ORDER BY dtp) AS T12_16,
(SELECT TOP (1) doTime
FROM t_table AS t_table_2
WHERE (cpid = a.cpid) AND (CONVERT(varchar(10), doTime, 120) = CONVERT(varchar(10), a.doTime, 120)) AND (CONVERT(varchar(8), doTime, 24)
BETWEEN '16:00:00' AND '19:59:59')
ORDER BY dtp) AS T16_20,
(SELECT TOP (1) doTime
FROM t_table AS t_table_1
WHERE (cpid = a.cpid) AND (CONVERT(varchar(10), doTime, 120) = CONVERT(varchar(10), a.doTime, 120)) AND (CONVERT(varchar(8), doTime, 24)
BETWEEN '20:00:00' AND '23:59:59')
ORDER BY dtp) AS T20_24
FROM t_table AS a
GROUP BY cpid, CONVERT(varchar(10), doTime, 120)