2012-05-21 35 views
1

我想從不同的表中獲取相同的列,所以我使用用戶函數。 但我想在返回之前對結果表進行排序。 在此代碼中,我嘗試使用臨時表執行此操作。 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

非常感謝!它正在工作! –