7

我有一个 SQL 函数,它返回商品的最低和最高售价。我想做一个查询,获取其他 StockItem 列及其售价

像这样:

SELECT i.StockItemID ii, 
       i.Name, 
       i.Code, 
       pli.SellingPrice AS MinSellingPrice,
       pli.StandardSellingPrice AS MaxSellingPrice,
       i.WebDetailedDescription,
       i.WebAdditionalInfo,
       i.FeaturedItemDescription
FROM SC_StockItem AS i, 
     func_GetPrice(17, i.StockItemID, 5) pli

然而,这给出了一个错误:

消息 4104,级别 16,状态 1,第 12 行 无法绑定多部分标识符“i.StockItemID”。

知道我该怎么做吗?

提前致谢

4

1 回答 1

25

如果这是一个表值函数,那么您可以使用OUTER APPLY

select i.StockItemID ii, 
  i.Name, 
  i.Code, 
  pli.SellingPrice as MinSellingPrice, 
  pli.StandardSellingPrice as MaxSellingPrice,
  i.WebDetailedDescription, 
  i.WebAdditionalInfo, 
  i.FeaturedItemDescription
from SC_StockItem as i
OUTER APPLY func_GetPrice(17, i.StockItemID, 5) pli

来自 MSDN

APPLY 运算符允许您为查询的外部表表达式返回的每一行调用表值函数。

于 2013-01-11T14:31:44.037 回答