我想创建一个报告来回显类别,然后是每个类别的总销售额
。
数据库分为 4 个表:
1)类别表(保存类别名称和id)
2)产品(通过类别id
从这里选择产品
)
3) 销售(持有与销售项目相关的销售 ID
)
4) 促销品(包含所有促销品
和销售量
)
我需要通过category id
获取我认为的产品,然后通过date
获取销售额,然后从sale items
中选择按 sale id
(仅按日期)和按 product id
(因此它们仅按相应类别)。
这是我的尝试..但没有成功,我不确定我是否走在正确的道路上,我们将不胜感激 :) 谢谢!
//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
}
?>
最佳答案
我敢肯定这不是 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
关于php - MYSQL Query-Building Form With Queries-多表汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31187043/