2016-08-08 11 views
-1

cold fusion/mysqlスクリプトに問題があります。それはこれのように行く...私は情報の2つのテーブルがあります。内部ループのクエリが意図した結果を得られません

私は2つのテーブルを持っています。 tbl_propertyおよびtbl_propデータ。後者は、他のテーブルにあるプロパティに関連するデータシートを持っています...以下は私のクエリです。うまくいけば、誰かが私が間違っていることを教えてくれるでしょう!

<cfquery name="getInfoByStreet" datasource="#application.dsn#"> 
    SELECT 
     tbl_property.prp_street_name, 
     tbl_property.prp_street_suffix, 
     tbl_property.prp_street_number, 
     tbl_property.prp_street_direction, 
     tbl_prop_data.pd_cat, 
     tbl_prop_data.pd_ref, 
     tbl_prop_data.pd_action, 
     tbl_prop_data.pd_date, 
     tbl_prop_data.pd_pdfFile, 
     tbl_prop_data.pd_activity, 
     tbl_prop_data.prp_ID, 
     tbl_prop_data.pd_ID, 
     tbl_prop_data.company_ID, 
     tbl_prop_data.pd_status 

    FROM tbl_property 

     INNER JOIN tbl_prop_data ON tbl_property.prp_ID = tbl_prop_data.prp_ID 

     WHERE pd_active = 1 
     AND pd_date >= <cfqueryparam value="#begin#" cfsqltype="cf_sql_date"> 
     AND pd_date <= <cfqueryparam value="#end#" cfsqltype="cf_sql_date"> 
     <cfif activityS1 neq 0>AND pd_activity = '#activityS1#'</cfif> 
     <cfif referenceS1 neq 0>AND pd_ref = '#referenceS1#'</cfif> 
     <cfif actionS1 neq 0>AND pd_action = '#actionS1#'</cfif> 
     <cfif statusS1 neq 0>AND pd_status = '#statusS1#'</cfif> 
     AND pd_cat = '#form.cat#' 

     GROUP BY prp_street_name ASC 

</cfquery> 

ここには私に与えられた結果のスクリーンショットと表示コードもあります。あなただけのループにネストされたcfoutputを使用するグループクエリをループしcfoutputを使用する場合はどのような私が欲しいのはループにグループ化された通りの下で一致しているレコードを...

<cfoutput query="getInfoByStreet" group="prp_street_name"> 

     <table width="100%" border="0"> 
      <tr> 
      <th class="display">#prp_street_name# #prp_street_suffix#</th> 
      <th class="display">Date</th> 
      <th class="display">Reference</th> 
      <th class="display">Action</th> 
      <th class="display">PDF</th> 
      </tr> 
      <cfloop query="getInfoByStreet"> 
      <tr> 
      <td height="41">#prp_street_number# #prp_street_direction# #prp_street_name# #prp_street_suffix#</td> 
      <td>#DateFormat(pd_date, "mm/dd/yyyy")#</td> 
      <td><span class="smallBlack">#getActionNow.name#</span></td> 
      <td><span class="smallBlack">#getRefNow.name#</span></td> 
      <td>#pd_pdfFile#</td> 
      </tr> 
      </cfloop> 
     </table> 
     </cfoutput> 

Front-end display of my posted code

+0

質問とは何の関係が、*すべて*可変パラメータ、それらだけではなく、いくつかの上でcfqueryparamを使用してください;-) – Leigh

答えて

0

ですグループを通して

<cfoutput query="getInfoByStreet" group="prp_street_name"> <table width="100%" border="0"> <tr> <th class="display">#prp_street_name# #prp_street_suffix#</th> <th class="display">Date</th> <th class="display">Reference</th> <th class="display">Action</th> <th class="display">PDF</th> </tr> <cfoutput> <tr> <td height="41">#prp_street_number# #prp_street_direction# #prp_street_name# #prp_street_suffix#</td> <td>#DateFormat(pd_date, "mm/dd/yyyy")#</td> <td><span class="smallBlack">#getActionNow.name#</span></td> <td><span class="smallBlack">#getRefNow.name#</span></td> <td>#pd_pdfFile#</td> </tr> </cfoutput> </table> </cfoutput>

+0

ねえ、返事に感謝...私はちょうどそれを試してみて、それは私に同じ結果を与えた。私のSQLクエリで "GROUP BY"を使用するだけでなく、ディスプレイ上のCFグループ属性を使用することができますか? –

+0

興味深いことに... GROUP BY行をSQL​​文から削除すると、必要な結果が得られます。まあ、それは通り(レコード)の1つを繰り返しますが、私は間違っているかどうかを調べるつもりです –

+1

@ JonJ。 - グループ化された出力を持つよくある問題は、クエリー結果がcfoutputグループと同じ順序で**並べ替えられていることを忘れていることです。たとえば、出力に 'group =" prp_street_name "を使用する場合、cfqueryは同じ列、つまり... ... ORDER BY prp_street_name' – Leigh

関連する問題