1

このページを参照してください:http: //allblacks.01dev.co.nz/templates/super14/textobjects/SRMatchDayList.cfm クエリダンプが含まれています。私はこのコードを継承しており、可能であればそれを使用したいと思います。

次のコードは、週ごとに器具を出力します。

<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を使用してこれを達成するにはどうすればよいですか?

WebサイトからのSQL

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
4

1 に答える 1

2

を使用してLEFT OUTER JOINいます。これは、イベント/セグメントごとに1つのレコードがあることを意味します。それらを内部結合に変更すると、目的の結果が得られるはずです。

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
于 2013-02-17T15:45:06.237 に答える