저는 SQL에 익숙하며 매개 변수를 전달하기 위해 here이라는 UDF를 사용하여 Great Plains 데이터를 Excel로 직접 끌어 오려고 Power Query를 사용하려고합니다. 통합 문서에서 쿼리로.Microsoft SQL : 열 "dbo"또는 사용자 정의 함수 또는 집계를 찾을 수 없습니다.
(ParameterName as text) =>
let
ParamSource = Excel.CurrentWorkbook(){[Name="Parameters"]}[Content],
ParamRow = Table.SelectRows(ParamSource, each ([Parameter] = ParameterName)),
Value=
if Table.IsEmpty(ParamRow)=true
then null
else Record.Field(ParamRow{0},"Value")
in
Value
여기에 SQL 쿼리입니다 : 다음은 UDF는
Declare @accrualDate Date
set @accrualDate = dbo.fnGetParameter("Accrual Date")
Declare @lookback Date
set @lookback = dbo.fnGetParameter("Lookback for Automated Accruals")
Declare @lookbackBOP Date
set @lookbackBOP = dbo.fnGetParameter("Lookback for Manual Accruals - BOP")
Declare @lookbackEOP Date
set @lookbackEOP = dbo.fnGetParameter("Lookback for Manual Accruals - EOP")
SELECT
[Open Year],
[History Year],
[Period ID],
[TRX Date],
[Account Number],
[Account Description],
[Journal Entry],
[description],
[reference],
[Originating Posted Date],
Sum([Debit Amount]) AS [Debit Amount],
Sum([Credit Amount]) AS [Credit Amount] ,
Segment1,
Segment2,
Segment3,
Segment4,
Segment5,
Segment6,
Segment7
FROM ['dbName'].[dbo].[AccountTransactions]
WHERE Segment2 BETWEEN 6000 AND 6999
and [description] = 'Purchases'
and [TRX Date] BETWEEN @lookback AND @accrualDate
GROUP BY [Open Year], [History Year], [Period ID], [TRX Date], [Account Number], [Account Description], [Journal Entry],[description],[reference], [Originating Posted Date], Segment1, Segment2, Segment3, Segment4, Segment5, Segment6, Segment7
내가 단독으로 UDF를 실행 한, 그것은 내 "매개 변수"테이블에서 예상 값을 반환한다는 것을 확인했다. 그러나 쿼리를 실행할 때 다음과 같은 오류가 발생합니다.
DataSource.Error: Microsoft SQL: Cannot find either column "dbo" or the user-defined function or aggregate "dbo.fnGetParameter", or the name is ambiguous. Details: DataSourceKind=SQL DataSourcePath=dcb-gp15-sql.us.medsolutions.com;MED01 Message=Cannot find either column "dbo" or the user-defined function or aggregate "dbo.fnGetParameter", or the name is ambiguous. Number=4121 Class=16
도움이 될만한 모든 도움을 주실 수 있습니다.
'dbo.fnGetParameter' 란 무엇입니까? [테이블 반환 함수] (https://technet.microsoft.com/en-us/library/ms191165 (v = sql.105) .aspx)이면 스칼라 함수로 사용할 수 없습니다. –
' fnGetParameter'는 Excel 함수입니까? 분명하지 않아. – DavidG
fnGetParameter는 Power Query> From Other Sources> Blank Query> Advanced Editor를 사용하여 작성한 UDF의 이름입니다. 미안하지만, 나는 그 질문에 대해 더 분명히해야만했다. – battery514