我需要在下面运行更大版本的 SQL Server 2008 查询(42 次重复,与SELECT
下面显示的 4 次重复相对)。在我看来,它似乎不是很优化,并且是使用 while 循环的理想候选者,但经过数小时的搜索和尝试后,我无法让它工作。谁能建议一个更优化的查询来完成我的需要?
谢谢
SELECT
t1.Occupied as "1", t2.Occupied as "2",
t3.Occupied as "3", t4.Occupied as "4"
FROM
(SELECT
COUNT(function_id) AS Occupied
FROM
ev_functions
WHERE
room_id = 22
AND DATEADD(HOUR,3,GETDATE()) > from_date_time
AND GETDATE() < to_date_time
AND function_status_id = 6) t1,
(SELECT
COUNT(function_id) AS Occupied
FROM
ev_functions
WHERE
room_id = 1
AND DATEADD(HOUR,3,GETDATE()) > from_date_time
AND GETDATE() < to_date_time
AND function_status_id = 6) t2,
(SELECT
COUNT(function_id) AS Occupied
FROM
ev_functions
WHERE
room_id = 1
AND DATEADD(HOUR,3,GETDATE()) > from_date_time
AND GETDATE() < to_date_time
AND function_status_id = 6) t3,
(SELECT
COUNT(function_id) AS Occupied
FROM
ev_functions
WHERE
room_id = 1
AND DATEADD(HOUR,3,GETDATE()) > from_date_time
AND GETDATE() < to_date_time
AND function_status_id = 6) t4