Sql server SQL server无法接受中值函数
我写了这个中值函数,但它执行时有错误。。有人能告诉我密码有什么问题吗Sql server SQL server无法接受中值函数,sql-server,Sql Server,我写了这个中值函数,但它执行时有错误。。有人能告诉我密码有什么问题吗 BEGIN CREATE TABLE #ITEMORDERDETAILS ( ITEM CHAR(15), QTYSHP DECIMAL(21, 6), RQDATE DATETIME ) DECLARE @Median FLOAT DECLARE @ITEM CHAR(15) DECLARE @ORDERCNT
BEGIN
CREATE TABLE #ITEMORDERDETAILS
(
ITEM CHAR(15),
QTYSHP DECIMAL(21, 6),
RQDATE DATETIME
)
DECLARE @Median FLOAT
DECLARE @ITEM CHAR(15)
DECLARE @ORDERCNT INT
SET @ITEM=@ITEMN
INSERT #ITEMORDERDETAILS
SELECT ITEM,
QTYSHP,
RQDATE
FROM tbl123456
WHERE PRICE != '0'
AND SALESMN != 'WB'
AND RQDATE > ( getdate () - 180 )
AND ITEM = @ITEM
UNION
SELECT ITEM,
QTYSHP,
RQDATE
FROM tbl123
WHERE PRICE != '0'
AND SALESMN != 'WB'
AND RQDATE > ( getdate () - 180 )
AND ITEM = @ITEM
SELECT @ORDERCNT = count (1)
FROM #ITEMORDERDETAILS
--SELECT @ORDERCNT
SELECT @Median = ( sum(QTYSHP) / @ORDERCNT )
FROM #ITEMORDERDETAILS
SELECT @Median AS 'Median'
--SELECT * from #ITEMORDERDETAILS
DROP TABLE #ITEMORDERDETAILS
RETURN @Median
END
错误
Msg 2772,16级,状态1,程序
如果获取平均值、订单大小、中位数,则第34行无法访问临时值
函数中的表
Msg 2772,16级,状态1,程序
f_Get_Average_Order_Size_Median,第35行无法访问临时
函数中的表
Msg 2772,16级,状态1,程序
如果获取平均值、订单大小、中位数,第42行无法访问临时值
函数中的表
Msg 156,15级,状态1,程序
f_Get_Average_Order_Size_Median,第46行靠近
关键字“选择”
原因在您的错误消息中:
Line 34 Cannot access temporary tables from within a function
如果您创建了一个函数,那么您可以访问的内容是有限制的
但是,如果使用SQL Server2012,则不需要编写自己的中值函数,但可以使用
无法从函数中访问临时表
@table
可以改用变量。
PERCENTILE_DISC (0.5) WITHIN GROUP (ORDER BY XXXX)
OVER (PARTITION BY YYYY) AS Median