Sql 如何连接表值函数?
下面我想将stockactions与udf_SlipSerials连接起来,后者返回股票序列和股票Id;我怎样才能做到这一点Sql 如何连接表值函数?,sql,sql-server,Sql,Sql Server,下面我想将stockactions与udf_SlipSerials连接起来,后者返回股票序列和股票Id;我怎样才能做到这一点 ALTER VIEW [dbo].[vStockSerials] AS SELECT distinct sa.Oid as Id,it.Oid as StockOid, wh.Oid as WarehouseOid, udf.serial, it.Code as StockCode,sa.ActionPrice,it.Code+' '+it.Title as StockN
ALTER VIEW [dbo].[vStockSerials]
AS
SELECT distinct sa.Oid as Id,it.Oid as StockOid, wh.Oid as WarehouseOid, udf.serial,
it.Code as StockCode,sa.ActionPrice,it.Code+' '+it.Title as StockName, it.Title as StockTitle,wh.Title as Warehouse,
sa.SlipDate,sa.IsSlipDeleted,sst.ActionType,
sa.SlipType
FROM dbo.StockAction as sa
INNER JOIN dbo.Item as it ON sa.Stock=it.Oid
INNER JOIN dbo.EnterpriseCore as wh ON sa.Warehouse=wh.Oid
INNER JOIN dbo.Stock as s ON sa.Stock=s.Oid
LEFT OUTER JOIN
(
SELECT CONVERT(uniqueidentifier, st.Oid) as SlipType,
(case st.StockEffect
when '1' then
'Income'
when '2' then
'Expense'
end) as ActionType
FROM dbo.StockSlipType as st
UNION
OUTER APPLY udf_SlipSerials(sa.SerialNos,sa.Stock) as udf
GO
实际上,连接条件是sa上的sst.SlipType=sst.SlipType。问题是外部应用程序的工作速度非常慢,并且没有显示序列
SELECT distinct
sa.Oid as Id
,it.Oid as StockOid
, wh.Oid as WarehouseOid
, udf.serial
,it.Code as StockCode
,sa.ActionPrice
,it.Code+' '+it.Title as StockName
, it.Title as StockTitle
,wh.Title as Warehouse
,sa.SlipDate
,sa.IsSlipDeleted
,sst.ActionType
,sa.SlipType
FROM dbo.StockAction as sa INNER JOIN dbo.Item as it
ON sa.Stock=it.Oid
INNER JOIN dbo.EnterpriseCore as wh
ON sa.Warehouse=wh.Oid
INNER JOIN dbo.Stock as s
ON sa.Stock=s.Oid
LEFT OUTER JOIN
(
SELECT CONVERT(uniqueidentifier, st.Oid) as SlipType,
case st.StockEffect
when '1' then 'Income'
when '2' then 'Expense'
end as ActionType
FROM dbo.StockSlipType as st
)Sub
ON s.Oid = Sub.SlipType --<-- Your are missing this join condition here I have only gussed
OUTER APPLY
dbo.udf_SlipSerials(sa.SerialNos,sa.Stock) as udf