私が作成したSQLServerのテーブル値関数があります。以下の作成スクリプトを貼り付けました。
CREATE FUNCTION [dbo].[getTableFromString]
(
@String AS nvarchar(max)
)
RETURNS @ReturnTable TABLE ( StringValues nvarchar(10) )
AS begin
if (SELECT CHARINDEX(',', @String)) = 0
begin
insert into @ReturnTable (StringValues) values (subString(@String,1,len(@String)));
end
else
begin
while (SELECT CHARINDEX(',', @String)) > 0
begin
insert into @ReturnTable (StringValues) values (subString(@String,1,CHARINDEX(',', @String)-1));
set @String = subString(@String,CHARINDEX(',', @String)+1,len(@String));
if (SELECT CHARINDEX(',', @String)) = 0
begin
insert into @ReturnTable (StringValues) values (subString(@String,1,len(@String)));
end
end
end
return ;
end
そして私はこの機能を以下のように使用しています
Select sum(NetSales)
from vwxsalesall
where Company = 'rs'
and storecode = (select cPrimaryStockRoomCode from CompanyMaster.CompanyProfileDetail where cCompanyNo = 'rs' and cSecondaryStockRoomCode = 'R01B')
and trandate >= '2012-01-01'
and trandate <= '2012-01-31'
and (
brand in (
select StringValues from dbo.getTableFromString(
select vIncludedBrandCodes
from StockRoomTargetData.MonthlyTarget
where cCompanyNo = 'rs'
and cSecondaryStockRoomCode = 'R01B'
and nYear = 2012
and nMonth = 8
)
)
)
残念ながら、このエラーが発生します
メッセージ156、レベル15、状態1、行10
キーワード「select」の近くの構文が正しくありません。
メッセージ102、レベル15、状態1、行16
')'の近くの構文が正しくありません。
私を助けてください