Hi Keith,

The way I would go about this is to try and pinpoint what the issue is, by 
breaking the query up.

For instance, if you remove the 'product_quantity > 0' condition, do you get 
any more rows in your result ?

I also notice that your 'products_date_avaiable' is defaulting to '2008-10-01 
00:00:00' which is the same date in your two sample rows.

Run a query like
  SELECT distinct (products_date_available) FROM products

and see if there are there are any other dates ... if there are only 2, then 
you'll get only two rows.

Thanks,
Justin Tifang

-----Original Message-----
From: Keith Clark [mailto:keithcl...@k-wbookworm.com] 
Sent: 13 May 2010 14:11
To: mysql@lists.mysql.com
Subject: Re: Count Query question

Bob,

Here are a few rows of my data:

17462, 0, '0929998596', '/GraphicNovels/0929998596.jpg', '8.5000',
'2010-05-12 19:02:47', '2008-10-01 00:00:00', '2008-10-01 00:00:00',
'0.50', 1, 1, 7429, 0, '1', 

17461, 1, '1561481912', '/Cooking/1561481912.jpg', '3.0000', '2010-05-12
19:00:17', '2008-10-01 00:00:00', '2008-10-01 00:00:00', '0.50', 1, 1,
7428, 0, '1', 

Here is the query I ran:

SELECT date(products_date_available) as Date,
COUNT(products_quantity) as 'Titles Available',
SUM(products_quantity) as 'Books Available'
FROM products
WHERE products_quantity > 0
GROUP BY date(products_date_available);

And I only got back two rows from over 2 years of daily entries:

'2008-01-01', 3327, '3736'
'2008-10-01', 2739, '2904'

I'm not sure I understand where I'm going wrong.

Keith


On Wed, 2010-05-12 at 21:54 -0500, Bob Cole wrote:
> Kevin:
> I assumed the following data:
> products_id   products_date_available products_quantity
> 11    2010-05-01      1
> 11    2010-05-02      0
> 11    2010-05-03      3
> 11    2010-05-04      3
> 11    2010-05-05      3
> 11    2010-05-06      1
> 11    2010-05-07      0
> 11    2010-05-08      3
> 11    2010-05-09      3
> 11    2010-05-10      3
> 11    2010-05-11      3
> 11    2010-05-12      3
> 22    2010-05-01      1
> 22    2010-05-02      2
> 22    2010-05-03      0
> 22    2010-05-04      3
> 22    2010-05-05      3
> 22    2010-05-06      1
> 22    2010-05-07      0
> 22    2010-05-08      3
> 22    2010-05-09      0
> 22    2010-05-10      3
> 22    2010-05-11      3
> 22    2010-05-12      3
> 33    2010-05-01      1
> 33    2010-05-02      2
> 33    2010-05-03      3
> 33    2010-05-04      3
> 33    2010-05-05      3
> 33    2010-05-06      0
> 33    2010-05-07      0
> 33    2010-05-08      3
> 33    2010-05-09      3
> 33    2010-05-10      0
> 33    2010-05-11      3
> 33    2010-05-12      3
> 
> and used the following query:
>      SELECT products_date_available, COUNT(products_quantity), 
> SUM(products_quantity)
>      FROM products
>      WHERE products_quantity > 0
>      GROUP BY products_date_available
> 
> and got the following results:
>      products_date_available   COUNT   SUM
>      2010-05-01 00:00:00          3               3
>      2010-05-02 00:00:00          2               4
>      2010-05-03 00:00:00          2               6
>      2010-05-04 00:00:00          3               9
>      2010-05-05 00:00:00          3               9
>      2010-05-06 00:00:00          2               2
>      2010-05-08 00:00:00          3               9
>      2010-05-09 00:00:00          2               6
>      2010-05-10 00:00:00          2               6
>      2010-05-11 00:00:00          3               9
>      2010-05-12 00:00:00          3               9
> 
> One line for each day except that 2010-05-07 is missing because each product 
> had 0 quantity on that day.
> For example, on 2010-05-01, there were 3 products (each with a quantity of 1) 
> for a total quantity of 3.
> I wonder if I am representing your situation correctly.  What am I missing?
> Bob
> 
> On May 12, 2010, at 8:00 PM, Keith Clark wrote:
> > Hi Bob,
> > No, actually it does not.  I'm looking for the count of items.  From
> > your query example I only get two rows.  This table has over 2 1/2 years
> > of daily sales data.
> > Maybe I'm not stating my question correctly...hmmmm....
> > Thanks for responding though, greatly appreciated.
> > Keith
> > On Wed, 2010-05-12 at 19:46 -0500, Bob Cole wrote:
> >> Keith:
> >> Does this work?
> >>     SELECT products_date_available, COUNT(products_quantity)
> >>     FROM products
> >>     WHERE products_quantity > 0
> >>    GROUP BY products_date_available
> >> Hope this helps,
> >> Bob
> >> On May 12, 2010, at 3:06 PM, Keith Clark wrote:
> >>> On Wed, 2010-05-12 at 10:13 -0400, Keith Clark wrote:
> >>>> Chris,
> >>>> Here is my full table definition:
> >>>> 
> >>>> CREATE TABLE `products` (
> >>>> `products_id` int(15) NOT NULL AUTO_INCREMENT,
> >>>> `products_quantity` int(4) NOT NULL,
> >>>> `products_model` varchar(15) NOT NULL DEFAULT '',
> >>>> `products_image` varchar(64) DEFAULT NULL,
> >>>> `products_price` decimal(15,4) DEFAULT NULL,
> >>>> `products_date_added` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
> >>>> `products_last_modified` datetime DEFAULT '2008-10-01 00:00:00',
> >>>> `products_date_available` datetime DEFAULT '2008-10-01 00:00:00',
> >>>> `products_weight` decimal(5,2) DEFAULT '0.50',
> >>>> `products_status` tinyint(1) NOT NULL DEFAULT '1',
> >>>> `products_tax_class_id` int(11) DEFAULT '1',
> >>>> `manufacturers_id` int(11) DEFAULT NULL,
> >>>> `products_ordered` int(11) DEFAULT '0',
> >>>> `products_format` varchar(20) DEFAULT NULL,
> >>>> `abebooks_price` decimal(15,4) DEFAULT NULL,
> >>>> PRIMARY KEY (`products_id`,`products_model`),
> >>>> UNIQUE KEY `products_model` (`products_model`),
> >>>> KEY `idx_products_date_added` (`products_date_added`),
> >>>> KEY `manufacturers_id` (`manufacturers_id`)
> >>>> ) ENGINE=MyISAM AUTO_INCREMENT=17418 DEFAULT CHARSET=latin1
> >>>> 
> >>>> So, I'd like to create a report that grouped by products_date_available,
> >>>> counts all records before products_date_available with a
> >>>> products_quantity>0.
> >>>> 
> >>>> 
> >>> I don't think I'm asking this question properly.
> >>> 
> >>> For every date in products_date_available in the table, I'd like to know
> >>> the count of items available with products_quantity>0 up until that
> >>> date.
> >>> 
> >>> So if there are 500 days in the table, there should be 500 rows in the
> >>> report.  Each showing the products available as of that date in time.
> >>> 
> >>> I hope that clarifies it.  I can write a query to do so for each
> >>> individual date, just not a report for all dates at the same time.
> 
> 



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=webmas...@lisol.co.uk


__________ Information from ESET NOD32 Antivirus, version of virus signature 
database 5112 (20100513) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com


 

__________ Information from ESET NOD32 Antivirus, version of virus signature 
database 5112 (20100513) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
 


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to