我想用下面的SQL代碼來創建一個新的功能的新功能:SQL代碼不工作試圖創建
CREATE FUNCTION PROFITIBLE_CATEGORIES (@startDate date, @endDate date)
RETURNS @ResultTable TABLE (Name varchar(20), AMOUNT INT)
AS BEGIN
@ResultTable = SELECT TOP 5 NAME, COUNT(*) AS AMOUNT
FROM dbo.PURCHASES P JOIN
(SELECT PInC.NAME, PInC.[Walmart number],
PInSP.[Purchase Id] AS PInSP_PURCHASE_ID,
DPP.[Purchase Id] AS DPP_PURCHASE_ID
FROM dbo.PRODUCTS_IN_CATEGORIES PInC LEFT JOIN
dbo.Products_in_self_pick_up_purchases PInSP ON
PInC.[Walmart number] = PInSP.[Walmart number] LEFT JOIN
dbo.Delivered_products_purchases DPP ON
DPP.[Walmart number] = PInC.[Walmart number]) X
ON (P.[Purchase Id] = X.DPP_PURCHASE_ID)
OR (P.[Purchase Id] = X.PInSP_PURCHASE_ID)
WHERE [Date] < @endDate AND [Date] > @startDate
GROUP BY NAME
ORDER BY AMOUNT
RETURN
END
,但我發現了以下錯誤:
Msg 102, Level 15, State 1, Procedure PROFITIBLE_CATEGORIES, Line 4
Incorrect syntax near '@ResultTable'.
任何人都可以幫忙嗎? 這可能是一個語法錯誤,但我是新手。 在此先感謝。
難道你看一下兩個答案?只是好奇你爲什麼會選擇效率較低的方法。我不在乎名聲,但我確實在乎選擇的最佳答案 - 無論是爲了你還是爲未來的讀者。 –
我改變了我的選擇未來的讀者。 我之所以選擇其他的原因是因爲這是大學的課程,而且我們還沒有學習內聯函數,所以我不能使用它。 但你說得對。謝謝。 – user1472066