2016-08-31 2 views
0

나는이 기능을전화 테이블 값 함수는

ALTER FUNCTION [dbo].[FxPackageReport] 
(@packageId int) 
RETURNS table 
AS 
RETURN (
     select *from TestPackageReportDetails where [email protected] and step='LineCheck' 
     ) 
select *from dbo.fxpackagereport(5457) 

결과를 만들

select id,select *from dbo.fxpackagereport(id), from testpackage 

이 결과를 병합하는 솔루션이 있습니까? h my query>? 단지 쿼리 결과 내에서 테이블 결과를 가져오고 싶습니다.

+0

!!!! –

+0

[SQL 조인 테이블 반환 함수는 테이블 필드가 함수 입력 인 테이블과 중복 될 수 있습니다.] (http://stackoverflow.com/questions/4764994/sql-join-table-valued-function-with-table-where- table-field-is-a-function-input) – AHiggins

답변

2

UDF는 오히려 직선적 인 것처럼 보입니다. 따라서 UDF를 사용하는 대신 간단한 조인이 필요할 수 있습니다.

Select A.* 
      ,B.* 
    From testpackage A 
    Join TestPackageReportDetails B 
     on (TestPackageId=A.ID and step='LineCheck') 

또 다른 옵션은 CROSS APPLY가 사용하는 것입니다 및 투표 코멘트 아래로 UDF

select A.id 
     ,B.* 
from testpackage A 
Cross Apply (Select * from dbo.fxpackagereport(A.id)) B 
+0

실제로이 문제는 다소 복잡합니다. http : //stackoverflow.com/questions/39243771/efficiently-convert-rows-to-columns-in- sql-server-view 내 솔루션을 얻을 수 있지만이 솔루션을 storeprocedure로 변경하려면 –

+0

그냥 행에 내 행을 추가하려면 –

+0

작동합니다. 멀티 크로스를 적용합니다. 감사합니다 :) –