2013-02-17 3 views
1

이 페이지를 참조하십시오. http://allblacks.01dev.co.nz/templates/super14/textobjects/SRMatchDayList.cfm 쿼리 덤프가 포함되어 있습니다. 나는이 코드를 상속 받았으며 가능한 경우이 코드를 사용하는 것을 선호한다.ColdFusion cfoutput 쿼리 그룹

다음 코드는 조명기를 주 단위로 출력합니다.

<table cellspacing="0" cellpadding="0" border="0" align="center" width="530"> 
    <tr bgcolor="#797979"> 
     <th align="left"><p>&nbsp;<b>Date</b></p></td> 
     <th align="left"><p><b>Game</b></p></td> 
     <th align="left"><p><b>Venue</b></p></td> 
     <th align="left"><p><b>Time (NZ)</b></p></td> 
     <th align="center"><p><b>Result</b>&nbsp;</p></td> 
    </tr> 

    <cfset iWeekCounter = 0> 
    <cfif not attributes.useSegmentTitle and attributes.sortDirection is "desc"> 
     <cfset qSegments = oSeries.getSegmentInfo(seriesID=attributes.seriesID)> 
     <cfset iWeekCounter = qSegments.recordcount + 1> 
    </cfif> 

    <cfoutput query="qSeriesEvents" group="segmentID"> 
     <cfif attributes.sortDirection is "desc"> 
      <cfset iWeekCounter = iWeekCounter-1> 
     <cfelse> 
      <cfset iWeekCounter = iWeekCounter+1> 
     </cfif> 
     <tr> 
      <td colspan="5"><p><br><strong> 
       <cfif attributes.useSegmentTitle> 
        #qSeriesEvents.segment# 
       <cfelse> 
        Week #iWeekCounter# 
       </cfif> 
      </strong></p></td> 
     </tr> 
     <cfoutput> 
      <cfif textObjectCount gt 0> 
       <tr> 
        <td><p>&nbsp;#DateFormat(eventDateTime, "dd mmm")#</p></td> 
        <td><p><a href="/index.cfm?layout=#attributes.eventLayout#&event=#eventID#">#event#</a></p></td> 
        <td><p>#location#</p></td> 
        <td><p><cfif showTimeField is 1>#lcase(timeFormat(dateadd('h',iTimeOffset,eventDateTime),"h:mm tt"))#</cfif></p></td> 
        <td align="center" valign="top"><p><cfif isDate(eventDateTime) AND dateDiff("n",eventDateTime, now())>#oEvent.getTeamResult(eventID, homeTeamID)#-#oEvent.getTeamResult(eventID, awayTeamID)#</cfif>&nbsp;</p></td> 
       </tr> 
       <tr><td colspan="5"><div style="height:1px; padding:0px; margin0px; font-size:0; border-bottom: 1px solid ##999"></div></td></tr> 
      </cfif> 
     </cfoutput> 
    </cfoutput> 
</table> 

위의 URL에는 3 - 18주의 사항이 있으며 데이터가 없습니다. 데이터가 없으면 주간 회선을 표시하고 싶지 않습니다. 가능하면이 쿼리 출력 "group ="setup을 사용하여 이것을 어떻게 수행 할 수 있습니까? 웹 사이트

SELECT tObj.textObjectCount, events.*, venues.venue, venues.location, DATENAME(wk, events.eventDateTime - 1) AS EventWeek, s.segment 
FROM events join segments s on s.segmentID = events.segmentID 
LEFT OUTER JOIN (
    SELECT LUTextObjectEvent.eventID, COUNT(*) AS textObjectCount 
    FROM LUTextObjectEvent 
    INNER JOIN textObjects ON LUTextObjectEvent.textObjectID = textObjects.textObjectID 
    GROUP BY LUTextObjectEvent.eventID 
) tObj 
    ON events.eventID = tObj.eventID 
LEFT OUTER JOIN venues ON events.venueID = venues.venueID 
WHERE (events.eventID IN (
SELECT eventID 
FROM events 
WHERE segmentID IN (
    SELECT segmentID 
    FROM segments 
    WHERE seriesID IN (?)) 
) 
) 
ORDER BY s.segmentID asc 
+0

쿼리가 덤프되지 않았습니다. 해당 쿼리에 대해 sql을 포함하도록 게시물을 편집하십시오. 일주일에 적어도 한 게임이있는 경우 해당 검색어의 날짜 범위에 해당하는 것으로 보입니다. –

+0

쿼리에서 해당 행을 원하지 않습니다. 내부 조인 (?) 대신 왼쪽 조인을 사용하는 것 같습니다. 그러나 SQL을 볼 수 없으면 도움을 받기가 어렵습니다. – Travis

답변

2

에서

SQL 당신은 당신이 모든 이벤트/세그먼트에 대한 하나 개의 레코드를해야 의미 LEFT OUTER JOIN을 사용하고 있습니다. 이들을 내부 조인으로 변경하면 원하는 결과가 나타납니다.

SELECT tObj.textObjectCount, events.*, venues.venue, venues.location, DATENAME(wk, events.eventDateTime - 1) AS EventWeek, s.segment 
FROM events join segments s on s.segmentID = events.segmentID 
INNER JOIN (
    SELECT LUTextObjectEvent.eventID, COUNT(*) AS textObjectCount 
    FROM LUTextObjectEvent 
    INNER JOIN textObjects ON LUTextObjectEvent.textObjectID = textObjects.textObjectID 
    GROUP BY LUTextObjectEvent.eventID 
) tObj 
    ON events.eventID = tObj.eventID 
INNER JOIN JOIN venues ON events.venueID = venues.venueID 
WHERE (events.eventID IN (
SELECT eventID 
FROM events 
WHERE segmentID IN (
    SELECT segmentID 
    FROM segments 
    WHERE seriesID IN (?)))) 
ORDER BY s.segmentID asc 
+0

아, 쿼리 덤프를 클릭하면 더 많은 정보가 표시됩니다. 누가 알았 겠어? –

+0

니스, 나는 내 전화기에 덤프를 보지 못했다. 저주 모바일 브라우저! – Travis

+0

굉장합니다, 고마워요. – user460114