我一直在努力解决这个问题。我不确定MYSQL查询是最好的方法,但我不知所措。
我在某些日期为某些人提供参赛作品,但他们并不总是在同一天。例如:
Person Date Product
Mike 2012/12/1 Pants
Chris 2012/12/4 Shoes
Mike 2012/12/4 Pants
Julian 2012/12/5 Hat
我使用此表格进行趋势报告,我需要选择一个日期范围,例如2012/12/2 - 2012/12/10。我需要一张桌子,显示每个人每天穿什么,所以我可以看到在任何一天穿什么百分比。输出表看起来像这样:
Person Date Product
Mike 2012/12/1 Pants
Mike 2012/12/2 Pants
Mike 2012/12/3 Pants
Chris 2012/12/4 Shoes
Mike 2012/12/4 Shoes
Julian 2012/12/5 Hat
Mike 2012/12/5 Shoes
Chris 2012/12/5 Shoes
Julian 2012/12/6 Hat
Mike 2012/12/6 Shoes
Chris 2012/12/6 Shoes
Julian 2012/12/7 Hat
Mike 2012/12/7 Shoes
Chris 2012/12/7 Shoes
等等......取决于日期范围。理想情况下,这样的表会更好:
Date Product Worn Total
2012/12/1 Pants 1 1
2012/12/1 Shoes 0 1
2012/12/1 Hat 0 1
2012/12/2 Pants 1 1
2012/12/2 Shoes 0 1
2012/12/2 Hat 0 1
2012/12/3 Pants 1 1
2012/12/3 Shoes 0 1
2012/12/3 Hat 0 1
2012/12/4 Pants 0 2
2012/12/4 Shoes 2 2
2012/12/4 Hat 0 2
2012/12/4 Pants 0 3
2012/12/4 Shoes 2 3
2012/12/4 Hat 1 3
我目前正在使用MySql DB从事PHP工作。任何想法,建议都表示赞赏。
答案 0 :(得分:0)
如果Date是mysql日期字段,则第一个表只是
SELECT * FROM table WHERE Date > start_range AND Date < end_range
其中start_range和end_range是格式为YYYY / MM / DD的日期范围。
答案 1 :(得分:0)
伪代码主要是:
for(EACH day in date range){
$query = SELECT COUNT(product) from table WHERE date="day" AND product = "hat";
$getResults=mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($getResults))
{
$inventory_count = $row['COUNT(product)'];
}
echo 'Date'. $date.' - 'Product: hat - total = '. $inventory_count;
$query = SELECT COUNT(product) from table WHERE date="day" AND product = "pants";
$getResults=mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($getResults))
{
$inventory_count = $row['COUNT(product)'];
}
echo 'Date'. $date.' - 'Product: pants' - 'total = '. $inventory_count;
$query = SELECT COUNT(product) from table WHERE date="day" AND product = "shoes";
$getResults=mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($getResults))
{
$inventory_count = $row['COUNT(product)'];
}
echo 'Date'. $date.' - 'Product: shoes' - 'total = '. $inventory_count;
}
它可能不是获得它的最有效方式,但它应该能够获得所需的数据。放入一些TR和TD,将它包装在一个表中,你应该有你想要的东西。