Php MYSQL查询生成表单,查询多个表并汇总
我想创建一个报告,报告echo的分类,然后是每个分类的总销售额 数据库分为4个表: 1类别表包含类别名称和id 2产品按类别id从此处选择产品 3销售人员持有与销售项目相关的销售ID 4销售项目保存所有销售项目和销售金额 我需要通过类别id获取我相信的产品,然后通过日期获取销售额,然后仅通过日期和产品id从销售项目中选择销售项目,以便它们仅通过相应的类别 这是我的尝试。。但是没有工作,我甚至不确定我是否走上了正确的道路,任何帮助都将不胜感激:谢谢Php MYSQL查询生成表单,查询多个表并汇总,php,mysql,Php,Mysql,我想创建一个报告,报告echo的分类,然后是每个分类的总销售额 数据库分为4个表: 1类别表包含类别名称和id 2产品按类别id从此处选择产品 3销售人员持有与销售项目相关的销售ID 4销售项目保存所有销售项目和销售金额 我需要通过类别id获取我相信的产品,然后通过日期获取销售额,然后仅通过日期和产品id从销售项目中选择销售项目,以便它们仅通过相应的类别 这是我的尝试。。但是没有工作,我甚至不确定我是否走上了正确的道路,任何帮助都将不胜感激:谢谢 //Select The Category Ta
//Select The Category Table
$query="SELECT * FROM categories";
$result=mysql_query($query);
$num=mysql_numrows($result);
while($row = mysql_fetch_assoc($result))
{
echo $row['name']." ";
//store category id in a string
$cID = $row['id']."";
//get the product id's
$productquery = "SELECT id FROM products WHERE category_id = $cID";
$productresult = mysql_query($productquery);
$numproducts = mysql_num_rows($productresult);
$productrow = mysql_fetch_assoc($productresult);
$productid = $productrow['id']."";
// echo $productid;
//get sale id from table to use to get sale items
$salesquery = "SELECT * FROM sales WHERE date BETWEEN '2015-01-01 00:00:00' AND '2015-06-01 00:00:00'";
$salesresult = mysql_query($salesquery);
$salesnumber = mysql_num_rows($salesresult);
$salesrow = mysql_fetch_assoc($salesresult);
$salesid = $salesrow['id']."";
// echo $salesid;
//put it all together and try to sum up the subtotal col where only the category product will be tallied
$saleitemsquery = "SELECT SUM(subtotal) FROM sales_items WHERE sale_id = $salesid AND product_id = $productid";
$totalresult = mysql_query($saleitemsquery);
// $totalrow = mysql_fetch_assoc($totalresult);
echo $totalresult;
?>
<br /> <br />
<?php
}
?>
要做到这一点,您必须使用JOIN。但在使用它之前,您必须确保您的表以某种方式连接在一起
例如,表列
-表类别:类别id。。
-表销售:销售id、类别id、。。
在这种情况下,它将类似于:
SELECT *
FROM categories as c
JOIN sales as s
ON c.cat_id=s.cat_id
要计算出现次数,请使用COUNTtable.column\u to\u在单词SELECT之后计数。要执行此操作,必须使用JOIN。但在使用它之前,您必须确保您的表以某种方式连接在一起
例如,表列
-表类别:类别id。。
-表销售:销售id、类别id、。。
在这种情况下,它将类似于:
SELECT *
FROM categories as c
JOIN sales as s
ON c.cat_id=s.cat_id
要计算出现次数,请在单词SELECT之后使用COUNTtable.column\u to\u count。我确信这不是100%准确,但希望它足以让您走上正确的轨道
select c.name as Name, sum(i.subtotal) as Total
from sale_items i
inner join sales s on s.id = i.sale_id
inner join products p on p.id = i.product_id
inner join categories c on c.id = p.category_id
where s.date BETWEEN '2015-01-01 00:00:00' AND '2015-06-01 00:00:00'
group by c.id
我相信这不是100%准确,但希望它足以让你走上正确的轨道
select c.name as Name, sum(i.subtotal) as Total
from sale_items i
inner join sales s on s.id = i.sale_id
inner join products p on p.id = i.product_id
inner join categories c on c.id = p.category_id
where s.date BETWEEN '2015-01-01 00:00:00' AND '2015-06-01 00:00:00'
group by c.id
你需要学习如何使用SY你需要学习如何使用s