[英]MYSQL Select last known row data by date
我已经为此努力了一段时间。 我不确定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中工作。 任何想法,建议表示赞赏。
如果Date是mysql date字段,则第一个表将是
SELECT * FROM table WHERE Date > start_range AND Date < end_range
其中start_range和end_range是您想要的日期范围,格式为YYYY / MM / DD。
伪代码主要是:
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,将其包装在桌子上,您应该拥有想要的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.