Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何连接表值函数?_Sql_Sql Server - Fatal编程技术网

Sql 如何连接表值函数?

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

下面我想将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 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