我的SQL查詢有問題,需要花時間從數據庫中獲取所有記錄。任何身體幫助我。以下是數據庫示例:SQL查詢優化
order(order_id, order_nm)
customer(customer_id, customer_nm)
orderDetail(orderDetail_id, order_id, orderDate, customer_id, Comment)
我想獲取最新的客戶和訂單詳細信息。
這裏是可能的解決方案:
我創建了GetLatestOrderByCustomer(CusID)函數來獲取最新的客戶信息。
CREATE FUNCTION [dbo].[GetLatestOrderByCustomer]
(
@cus_id int
)
RETURNS varchar(255)
AS
BEGIN
DECLARE @ResultVar varchar(255)
SELECT @ResultVar = tmp.comment
FROM
(
SELECT TOP 1 orderDate, comment
FROM orderDetail
WHERE orderDetail.customer_id = @cust_id
) tmp
-- Return the result of the function
RETURN @ResultVar
END
下面是我的SQL查詢
SELECT
customer.customer_id
, customer.customer_nm
, dbo.GetLatestOrderByCustomer(customer.customer_id)
FROM Customer
LEFT JOIN orderDetail
ON orderDetail.customer_id = customer.customer_id
這是需要時間來運行的功能。任何人都可以提出任何解決方案來改善它嗎?
你需要停下來思考程序上。使用基於集合的連接而不是調用函數 – 2010-03-31 05:21:40
當您爲您工作時,您應該選擇一個答案爲「正確」。你點擊你最喜歡的答案旁邊的大複選標記。 – 2010-03-31 13:11:18