2012-05-21 5 views
1

다른 테이블에서 같은 열을 가져 오려면 User Function을 사용하고 싶습니다. 하지만 Return 전에 결과 테이블을 정렬하고 싶습니다. 이 코드에서는 임시 테이블을 사용하여이 작업을 시도합니다. SQL 반환 : '@Result'근처의 구문이 잘못되었습니다. ' 어떻게해야합니까?Select into sql - 사용자 함수

덕분에 다음 코드

:

CREATE FUNCTION sp_GetAllNotConfirmedOrders 
() 
RETURNS @Result TABLE 
(
    OrderId int, 
    CreationDate datetime, 
    BusinessName nvarchar(150), 
    BusinessPhone nvarchar(20), 
    UserType int 
) 
AS 
BEGIN 
    DECLARE @TempData TABLE 
    (
     OrderId int, 
     CreationDate datetime, 
     BusinessName nvarchar(150), 
     BusinessPhone nvarchar(20), 
     UserType int 
    ) 

    INSERT INTO @TempData 
     SELECT  Orders.OrderId, ZimmerOrders.CreationDate,Zimmers.OwnerName, Zimmers.PhoneNUmber1, 2 
     FROM   Orders INNER JOIN 
        ZimmerOrders ON Orders.OrderId = ZimmerOrders.OrederId INNER JOIN 
        ZimmerRooms ON ZimmerOrders.RoomId = ZimmerRooms.RoomId INNER JOIN 
        Zimmers ON ZimmerRooms.ZimmerId = Zimmers.UserId 
     WHERE  (Orders.IsConfirm = 0) 

    INSERT INTO @TempData 
     SELECT  Orders.OrderId, HotelOrders.CreationDate, Hotels.PhoneNumber1, Hotels.HotelName, 4 
     FROM   HotelOrders INNER JOIN 
         HotelRooms ON HotelOrders.RoomId = HotelRooms.RoomId INNER JOIN 
         Hotels ON HotelRooms.HotelId = Hotels.UserId INNER JOIN 
         Orders ON HotelOrders.OrderId = Orders.OrderId 
     WHERE  (Orders.IsConfirm = 0) 

    SELECT * INTO @Result FROM @TempData ORDER BY CreationDate 
    RETURN 
END 

답변

1

당신은 이런 식으로 작업을 수행 할 수 있습니다

INSERT INTO @Result 
SELECT OrderId, CreationDate, BusinessName, BusinessPhone, UserType 
FROM @TempData 
ORDER BY CreationDate 
+0

고마워요! 작동 중! –