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 に答える