0
我想用創建內嵌表值函數下面的語句創建內嵌表值函數SQL服務器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, EndDate, 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
)
,但它給了我下面的錯誤:附近關鍵字聲明不正確的語法。
問題:是否有可能在內聯值表函數中做我想做的事情(聲明一個變量並使用函數的參數從查詢中獲得結果)然後將此值傳遞給將計算結果的主查詢)?如果是的話如何?如果沒有什麼選擇多語句表值函數或其他東西。我欣賞建議和其他想法
你可以解釋我怎麼可以用子查詢來替代它 – 2011-04-14 12:30:24