У меня проблема с моим запросом 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
Требуется время, чтобы запустить функцию. Кто-нибудь может предложить мне какие-нибудь решения, чтобы сделать его лучше?