Re: logic problem
| From: | Adam Williams | Date: | Wed, 21 Apr 2004 19:35:48 +0000 |
| Subject: | Re: logic problem | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-34022@lists.php.net to get a copy of this message | ||
Re-read my original email, I'm using mssql and not mysql. I'm sort
of close to having it working with the sql statement i posted earlier and
using PHP to figure out if the date has changed or not and to count the
cardnum if the date hasn't changed. I'm getting a number that is
different then the total number multiple visits by patrons, haven't
checked with the registration person if the # I am getting is right or
not, because for some of the very early dates when we were testing the
equipment, it returns a count of 0 visits by type 1 card users, even
though they have a count of 15 multiple entries that day, so something
weird is still going on. i think i'm going to have to end up using a
multidimensional array and having PHP loop through it or something...
On Wed, 21 Apr 2004, Brent Baisley wrote:
> This seems too easy to not be able to do it with SQL. There must be
> something we're missing in the query.
> Try this:
>
> select distinct badge.id,convert( varchar,eventime,110) as date,count(*)
> from events, badge where
> events.cardnum = badge.id and devid = '1' and
> convert( varchar, events.eventime, 110) BETWEEN '$startdate' and
> 'enddate'
> and type = '1'
> group by date
>
> In MySQL you don't need to specify a field for count(). And you should
> have to convert the eventime field twice, you should be able to
> reference the calc field in the group by.
>
> On Apr 21, 2004, at 2:19 PM, Adam Williams wrote:
>
> > Yeah I basically had that with my previous SQL statement, I was
> > grouping
> > by event.cardnum instead of counting the cardnums by date. I think
> > what
> > I'm trying to do is beyond the scope of SQL and I'll have to write some
> > PHP to take the SQL statement results and feed them into an array and
> > count the distinct cardnums for each date and then spit it all into an
> > html table. thanks
> >
> > On Wed, 21 Apr 2004, Daniel
> > Clark wrote:
> >
> >> AND: any count >=1 shows they came in that day.
> >>
> >> How about:
> >>
> >> SELECT convert( varchar,eventime,110) as date from events, badge,
> >> count(convert( varchar,eventime, 110)) as count
> >> WHERE events.cardnum = badge.id and devid = '1' and
> >> convert( varchar, events.eventime, 110) BETWEEN '$startdate' and
> >> 'enddate'
> >> AND type = '1'
> >> GROUP BY convert( varchar,events.eventime, 110), badge
> >>
> >>
> >>> I'm using some proprietary software/hardware where when a visitor
> >>> swipes
> >>> their entry card, it is recorded in a mssql 2000 server. My boss
> >>> wants a
> >>> count of unique vistors for a range of dates. So, I need to have it
> >>> give
> >>> a count of unique vistors, meaning that I need to count all vists
> >>> for a
> >>> day as one visit (because if they go outside to smoke and come back
> >>> and
> >>> swipe their card again to get in, each one is a separate visit, but
> >>> i need
> >>> to count all visits by each person as one visit since i just want to
> >>> know
> >>> if they came at all each day, not how many times they came in).
> >>>
> >>> This is my SQL statement:
> >>>
> >>> select distinct count(convert( varchar,eventime, 110)) as count,
> >>> convert( varchar,eventime,110) as date from events, badge wher
> >>> events.cardnum = badge.id and devid = '1' and
> >>> convert( varchar, events.eventime, 110) BETWEEN '$startdate' and
> >>> 'enddate'
> >>> and type = '1' group by convert( varchar,events.eventime, 110)
> >>>
> >>> for reference, devid = '1' is the hardware device, where everytime it
> >>> triggers, it means someone swiped their card to get in, and type =
> >>> '1'
> >>> means patron (because we have a type = 2 that is for staff and we
> >>> jsut
> >>> want to know how many patrons visited)
> >>>
> >>> When I execute this statement, its returning the result for each
> >>> date of
> >>> the total number of card swipes (so if a person comes in twice on a
> >>> date,
> >>> its recording it as 2 swipes, but I just need to know that they came
> >>> to
> >>> the building at all on this date, so I just need it to register that
> >>> there
> >>> was a count of atleast one for this card that was swiped)
> >>>
> >>> any suggestions? thanks
> >>>
> >>> --
> >>> PHP Database Mailing List (http://www.php.net/)
> >>> To unsubscribe, visit:
> >>> http://www.php.net/unsub.php
> >>>
> >>>
> >>
> >>
> >
> > --
> > PHP Database Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>