2013-02-17 138 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> 

但是,請注意周3 - 18在上面的URL,它不具有任何數據。如果沒有數據,我不想顯示周線。如果可能,我怎樣才能使用這個查詢輸出「group =」來實現這個功能?從網站

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。如果每週至少有一個遊戲,答案可能在於該查詢的日期範圍。 – 2013-02-17 12:07:11

+0

你甚至不需要查詢中的那些行。它看起來像使用左連接而不是內連接(?)。但是無法看到SQL,很難提供幫助 – Travis 2013-02-17 15:33:12

回答

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

哦,如果您單擊查詢轉儲,它將顯示更多信息。誰知道? – 2013-02-17 16:00:16

+0

不錯,我甚至沒有看到我手機上的轉儲。詛咒你的手機瀏覽器! – Travis 2013-02-17 20:22:50

+0

真棒,謝謝你的朋友。 – user460114 2013-02-17 22:36:32