테이블을 매개 변수로 사용하고 (2 열 테이블) UDF를 사용하여 article과 같은 문자열을 출력합니다. 나는이 같은 여러 열을 통해 UDF를 적용 할 테이블이 있습니다
SQL - 선택 테이블에서 UDF로 테이블 넘김
Date Unit Line Revenue Orders
4/1/12 D R 20.00 3
4/2/12 D R 25.00 4
4/1/12 H W 33.00 1
4/2/12 H W 35.00 3
내가 가장 최근의 날짜가이 테이블의 모든 행에 내 UDF를 호출로 UDF에게 표를 전달하려는
각 개별 단위 및 선에 대한 날짜 및 수익 열 또한 UDF를 호출하고 각기 다른 단위 및 선에 대해 날짜 및 주문을 전달하려고합니다. 이것은 보고서이며 UDF에는 항상 Date 열과 다른 계산 열을 전달하고 저장 및보고하려는 열이 전달됩니다. 그래서 CROSS APPLY가 포함 많은 것들을 살펴 보았다 나는 이런 일을하고 싶지 :
SELECT T.unit
, T.line
, dbo.fn_myUDF((SELECT T2.Date, T2.Revenue FROM #Table T2)) as UDFRevenueResult
, dbo.fn_myUDF((SELECT T2.Date, T2.Orders FROM #Table T2)) as UDFOrderResult
FROM #Table T
WHERE T.Date = @ReportDate
서브 쿼리가없는 경우이 나에게 "하나 개의 표현이 선택 목록에 지정할 수있는 오류를 제공 EXISTS에서 소개되었습니다. " 나는 CROSS APPLY를 보았지만 테이블 변수를 리턴 할 때만 적용되는 것처럼 보인다. 그래서 아마도 커서와 루프를 사용하여 각 루프 반복에서 UDF로 전달하려는 각 테이블을 구성하여 내 자신의 질문에 대답 할 수는 있지만 그 생각은 옳지 않습니다. 누구든지 SQL Server 2008에서 원하는 것을 할 수있는 아이디어를 줄 수 있습니까?
나는 두려웠다. 고유 한 단위 및 선을 사용하여 테이블을 하위 테이블로 쉽게 분할 할 수있는 방법이 있습니까? 아니면 각 UDF를 전달하려는 각 Unit/Line 및 Column에 대한 테이블을 만들어야합니까? – deusxmach1na
@ deusxmach1na - 각 행을 표로 처리하려고합니까? –
각 행이 아니지만 Unit 및 Line이 같은 모든 행이 테이블이어야합니다. 내 UDF는 Date 열과 Revenue 열을 가져 와서 모든 고유 한 Unit 및 Line 값에 대해 수행 할 계산을 수행합니다. 그래서 내 예제 테이블에서 Unit H와 Line R이기 때문에 첫 번째 두 개의 행을 하나의 테이블로 만들고 싶습니다. Unit H와 Line W이기 때문에 다음 두 행을 다른 테이블로 만들려고합니다. – deusxmach1na