Hi.
There are massive problems in the page (and nav) stats in farcry when using
PostgreSQL.
Some Queries are not correct (as marked in the source code). I've reviewed
these queries and corrected them.
Within my mail, I'll add these files.

All files should be placed into:
/farcry/farcry_core/packages/farcry/_stats

I've documentated the changes (at the top of the files, and where my changes
are placed).

I would be pleased finding my changes in the CVS / next release.

Bye,
Fritz

-- 
�=================================
| Fritz Dimmel
| Gassnergasse 14
| 2020 Hollabrunn
| AUSTRIA
|---------------------------------
| phone: +43-2952-3231
| mobile: +43-650-6779776
| web: http://www.dimmel.at
| mail: [EMAIL PROTECTED]
|---------------------------------
|        Enterity Cantabs
|
|    *punkrockgrungesemiska*
|      aus dem Weinviertel
�---------------------------------
| http://www.enterity-cantabs.com
�=================================
// get descendants over object qDescendants = request.factory.oTree.getDescendants(arguments.navId); select distinct hour, TO_CHAR(fq.logdatetime,'hh') as loginhour, count(fq.logId) as count_views from #application.dbowner#statsHours left join ( select * from stats where 1 = 1 AND navid IN (#QuotedValueList(qDescendants.objectid)#,'#arguments.navid#') )fq on TO_CHAR(fq.logdatetime,'hh') = statsHours.hour and TO_CHAR(fq.logdatetime,'dd' ) = #DatePart("d", arguments.day)# and TO_CHAR(fq.logdatetime,'mm') = #DatePart("m", arguments.day)# and TO_CHAR(fq.logdatetime,'yyyy') = #DatePart("yyyy", arguments.day)# group by hour, TO_CHAR(fq.logdatetime,'hh') order by 1 SELECT DISTINCT hour, TO_CHAR(fq.logdatetime,'HH24') as loginhour, count(fq.logId) as count_views from #application.dbowner#statsHours LEFT JOIN ( SELECT * FROM stats WHERE 1 = 1 AND navid IN (#QuotedValueList(qDescendants.objectid)#,'#arguments.navid#') ) fq ON TO_CHAR(fq.logdatetime,'HH24') = statsHours.hour AND TO_CHAR(fq.logdatetime,'DD' ) = '#DateFormat(arguments.day, "dd")#' AND TO_CHAR(fq.logdatetime, 'MM') = '#DateFormat(arguments.day, "mm")#' AND TO_CHAR(fq.logdatetime,'YYYY') = '#DateFormat(arguments.day, "yyyy")#' GROUP BY hour, TO_CHAR(fq.logdatetime,'HH24') ORDER BY 1 DROP TABLE IF EXISTS tblTemp1 create temporary table `tblTemp1` ( `LOGID` VARCHAR(255) NOT NULL , `LOGDATETIME` DATETIME NOT NULL ) INSERT INTO tblTemp1 (LOGID,LOGDATETIME) SELECT LOGID, LOGDATETIME FROM #application.dbowner#stats WHERE 1 = 1 AND navid IN (#QuotedValueList(qDescendants.objectid)#,'#arguments.navid#') select distinct hour, HOUR(fq.logdatetime) as loginhour, count(fq.logId) as count_views from #application.dbowner#statsHours left join tblTemp1 fq on HOUR(fq.logdatetime) = statsHours.hour and DAYOFMONTH(fq.logdatetime) = #DatePart("d", arguments.day)# and MONTH(fq.logdatetime) = #DatePart("m", arguments.day)# and YEAR(fq.logdatetime) = #DatePart("yyyy", arguments.day)# group by hour, loginhour order by 1 select distinct hour, datepart(hh, fq.logdatetime) as loginhour, count(fq.logId) as count_views from #application.dbowner#statsHours left join ( select * from stats where 1 = 1 AND navid IN (#QuotedValueList(qDescendants.objectid)#,'#arguments.navid#') )fq on datepart(hh, fq.logdatetime) = statsHours.hour and datepart(dd, fq.logdatetime) = #DatePart("d", arguments.day)# and datepart(mm, fq.logdatetime) = #DatePart("m", arguments.day)# and datepart(yyyy, fq.logdatetime) = #DatePart("yyyy", arguments.day)# group by hour, datepart(hh, fq.logdatetime) order by 1 ; select distinct hour, TO_CHAR(fq.logdatetime,'hh') as loginhour, count(fq.logId) as count_views from #application.dbowner#statsHours left join ( select * from stats where 1 = 1 and pageid = '#arguments.pageId#' )fq on TO_CHAR(fq.logdatetime,'hh') = statsHours.hour and TO_CHAR(fq.logdatetime,'dd' ) = #DatePart("d", arguments.day)# and TO_CHAR(fq.logdatetime,'mm') = #DatePart("m", arguments.day)# and TO_CHAR(fq.logdatetime,'yyyy') = #DatePart("yyyy", arguments.day)# group by hour, TO_CHAR(fq.logdatetime,'hh') order by 1 SELECT DISTINCT hour, TO_CHAR(fq.logdatetime,'HH24') as loginhour, count(fq.logId) as count_views from #application.dbowner#statsHours LEFT JOIN ( SELECT * FROM stats WHERE 1 = 1 AND pageid = '#arguments.pageId#' ) fq ON TO_CHAR(fq.logdatetime,'HH24') = statsHours.hour AND TO_CHAR(fq.logdatetime,'DD' ) = '#DateFormat(arguments.day, "dd")#' AND TO_CHAR(fq.logdatetime, 'MM') = '#DateFormat(arguments.day, "mm")#' AND TO_CHAR(fq.logdatetime,'YYYY') = '#DateFormat(arguments.day, "yyyy")#' GROUP BY hour, TO_CHAR(fq.logdatetime,'HH24') ORDER BY 1 DROP TABLE IF EXISTS tblTemp1 create temporary table `tblTemp1` ( `LOGID` VARCHAR(255) NOT NULL , `LOGDATETIME` DATETIME NOT NULL ) INSERT INTO tblTemp1 (LOGID,LOGDATETIME) SELECT LOGID, LOGDATETIME FROM #application.dbowner#stats WHERE 1 = 1 and pageid = '#arguments.pageId#' select distinct hour, HOUR(fq.logdatetime) as loginhour, count(fq.logId) as count_views from #application.dbowner#statsHours left join tblTemp1 fq on HOUR(fq.logdatetime) = statsHours.hour and DAYOFMONTH(fq.logdatetime) = #DatePart("d", arguments.day)# and MONTH(fq.logdatetime) = #DatePart("m", arguments.day)# and YEAR(fq.logdatetime) = #DatePart("yyyy", arguments.day)# group by hour, loginhour order by 1 select distinct hour, datepart(hh, fq.logdatetime) as loginhour, count(fq.logId) as count_views from #application.dbowner#statsHours left join ( select * from stats where 1 = 1 and pageid = '#arguments.pageId#' )fq on datepart(hh, fq.logdatetime) = statsHours.hour and datepart(dd, fq.logdatetime) = #DatePart("d", arguments.day)# and datepart(mm, fq.logdatetime) = #DatePart("m", arguments.day)# and datepart(yyyy, fq.logdatetime) = #DatePart("yyyy", arguments.day)# group by hour, datepart(hh, fq.logdatetime) order by 1 ; select distinct day, statsDays.name,TO_CHAR(fq.logdatetime,'dy') as loginday, count(fq.logId) as count_logins from #application.dbowner#statsDays left join ( select * from stats where 1 = 1 AND navid IN (#QuotedValueList(qDescendants.objectid)#,'#arguments.navid#') )fq on UPPER(TO_CHAR(fq.logdatetime,'dy')) = UPPER(SUBSTR(statsDays.day,1,3)) and (fq.logdatetime - TO_DATE('#arguments.day#','dd/mon/yy') <=0) and (TO_DATE('#dateadd('d','7',arguments.day)#','dd/mon/yy') - fq.logdatetime >=0)) group by day, statsDays.name, TO_CHAR(fq.logdatetime,'dy') order by 1 SELECT DISTINCT day, statsDays.name, TO_CHAR(fq.logdatetime, 'D') AS loginday, COUNT(fq.logId) AS count_logins FROM #application.dbowner#statsDays LEFT JOIN ( SELECT * FROM stats WHERE 1 = 1 AND navid IN (#QuotedValueList(qDescendants.objectID)#,'#arguments.navid#') ) fq ON (UPPER(TO_CHAR(fq.logdatetime, 'D')) = UPPER(SUBSTR(statsDays.day, 1, 3))) AND (fq.logdatetime >= '#thisWeek#') AND ('#nextWeek#' >= fq.logdatetime) GROUP BY day, statsDays.name, TO_CHAR(fq.logdatetime, 'D') ORDER BY 1 DROP TABLE IF EXISTS tblTemp1 create temporary table `tblTemp1` ( `LOGID` VARCHAR(255) NOT NULL , `LOGDATETIME` DATETIME NOT NULL ) INSERT INTO tblTemp1 (LOGID,LOGDATETIME) SELECT LOGID, LOGDATETIME FROM #application.dbowner#stats WHERE 1 = 1 AND navid IN (#QuotedValueList(qDescendants.objectid)#,'#arguments.navid#') select distinct day, statsDays.name,DAYOFWEEK(fq.logdatetime) as loginday, count(fq.logId) as count_logins from #application.dbowner#statsDays left join tblTemp1 fq on DAYOFWEEK(fq.logdatetime) = statsDays.day and fq.logdatetime - DATE_ADD(#arguments.day#, INTERVAL 0 DAY) >=0 and DATE_ADD(#arguments.day#, INTERVAL 7 DAY) - fq.logdatetime >=0 group by day, statsDays.name, DAYOFWEEK(fq.logdatetime) order by 1 -- now join our days table to the fqaudit table, to get the set we want. Note the query requires a day, month and year to be specified, for -- which we return the logins by day (nulls are returned if no logins during the day ) select distinct day, statsDays.name,datepart(dw, fq.logdatetime) as loginday, count(fq.logId) as count_logins from #application.dbowner#statsDays left join ( select * from stats where 1 = 1 AND navid IN (#QuotedValueList(qDescendants.objectid)#,'#arguments.navid#') )fq on datepart(dw, fq.logdatetime) = statsDays.day and datediff(day,fq.logdatetime,#createodbcdate(arguments.day)#) <=0 and datediff(day,fq.logdatetime,#createodbcdate(arguments.day+7)#) >=0 group by day, statsDays.name, datepart(dw, fq.logdatetime) order by 1
---
You are currently subscribed to farcry-dev as: [email protected]
To unsubscribe send a blank email to [EMAIL PROTECTED]

Aussie Macromedia Developers: http://lists.daemon.com.au/

Reply via email to