2016-10-14 3 views
0

SP를 쿼리하고 결과를 쿼리에 반환하는 루프가 있습니다. 루프를 여러 번 실행하여 결과를 하나의 최종 쿼리로 결합하여 jgrid 테이블에 출력 할 수 있습니다. . 여기 코드는 다음과 같습니다루프 쿼리 결과를 1로 결합합니다.

<cfloop query="query1"> 
     <cfstoredproc procedure="[Columns]" datasource="#CompanyDB#"> 
     <cfprocresult name="queryResults"> 
     <cfprocparam cfsqltype="cf_sql_varchar" value="#query1.ID#"> 
     <cfprocparam cfsqltype="cf_sql_varchar" value="#query1.Role#"> 
    </cfstoredproc> 
    </cfloop> 

그래서, 여기 2 번 따라서 나는이 queryResults를 얻을 반복합니다. 그 결과를 1 개의 큰 쿼리로 결합하여 jGrid 쿼리로 출력 할 수 있습니다. 레이가 언급 한 바와 같이

+2

지금까지 시도 무엇입니까? 아직 아무 것도 시도하지 않았다면 [coldfusion combine queries] (http://stackoverflow.com/search?q=%5Bcoldfusion%5D+combine+queries)에서 검색하여 몇 가지 아이디어를 얻으십시오. 즉, 일반적으로 루프 내에서 쿼리를 실행하는 것은 큰 방법이 아니며이를 피하기 위해 재구성 될 수 있습니다. – Leigh

답변

1

, 그것은 좋은 방법이 아니다 아마 훨씬 깨끗한 방법으로 관리 할 수 ​​있지만, 당신은 당신이 요구하는지 무엇을 할 수있는 몇 가지 방법이있다 :

사용 queryNew() 및 기타 관련 기능 자체 쿼리 개체를 만들고 각 루프를 통해 채 웁니다.

사용 쿼리의-쿼리를 UNION에 당신이 루프 등을 통해 진행하면서 결과 :

<cfloop query="query1"> 
<cfstoredproc procedure="[Columns]" datasource="#CompanyDB#"> 
    <cfprocresult name="queryResults"> 
    <cfprocparam cfsqltype="cf_sql_varchar" value="#query1.ID#"> 
    <cfprocparam cfsqltype="cf_sql_varchar" value="#query1.Role#"> 
</cfstoredproc> 
<cfquery name="finalResults" dbtype="query"> 
    <cfif isDefined('finalResults')> 
     (SELECT * FROM finalResults) 
     UNION ALL 
    </cfif> 
    (SELECT * FROM queryResults) 
</cfquery> 

관련 문제