微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建内联表值函数sql-server 2008

如何解决创建内联表值函数sql-server 2008

| 我想使用以下语句创建内联表值函数
    USE [abc]
    GO
    /****** Object:  UserDefinedFunction [dbo].[fnspEmpPeriodSkus]    Script Date: 04/14/2011 16:26:19 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    ALTER FUNCTION [dbo].[fnspEmpPeriodSkus] 
    (   
        -- Add the parameters for the function here
        @PositionID int
    )
    RETURNS TABLE 
    AS
    RETURN 
    (


declare @PeriodTypeID int
select @PeriodTypeID = cofig.PeriodTypeID from sysMarketSaleConfigurations config inner join setupJobs j on j.JobID = config.JobID
inner join setupDesignations d on d.JobID = j.JobID where d.DesignationID = @PositionID

SELECT EmployeeID,EmployeeName,ZoneID,Zone,RegionID,Region,TerritoryID,Territory,StartDate,EndDate,empperiods.PeriodID,empperiods.DesignationID,EmpSkus.SKUID,EmpSkus.SKUCode,EmpSkus.Title,EmpSkus.GroupName,EmpSkus.ProductGroupID,EmpSkus.PositionID,EmpSkus.PositionTitle 
FROM          (SELECT     StartDate,PeriodID,DesignationID
                                                   FROM          (SELECT     sysPeriods.PeriodID,sysPeriods.StartDate,sysPeriods.EndDate,setupDesignations.DesignationID
                                                                           FROM          setupJobs INNER JOIN
                                                                                           setupDesignations ON setupJobs.JobID = setupDesignations.JobID CROSS JOIN
                                                                                           sysPeriods
                                                                           WHERE     Year(sysPeriods.StartDate) = Year(Current_timestamp) and (sysPeriods.PeriodTypeID = @PeriodTypeID)) AS drvtbl) AS empperiods LEFT OUTER JOIN
                                                      dbo.vwEmpSkus AS EmpSkus ON 
                                                  empperiods.DesignationID = EmpSkus.PositionID
    )
但它给我以下错误:关键字声明附近的语法不正确。 问题:是否可以在内联表值函数中做我想做的事情(声明一个变量并使用函数的参数从查询获取结果)然后将该值传递给将计算结果的主查询)?如果是,怎么办?如果没有,则选择多语句表值函数是什么。我感谢建议和其他想法     

解决方法

不,您不能在内联表值函数中声明变量。 尽管您可以将2个查询合并为1个-看起来您应该能够将初始选择合并到当前使用该变量的子查询中。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。