我正在开发一个基于Web的报表系统,作为一个使用MySQL和PHP的学校项目。这是我的数据库的样子。MySQL - 项目总和问题
+-----------------------------------------------+
| Bill |
|-----------------------------------------------|
| BillID (pk) | BillDate | AccID (fk) |
|---------------|---------------|---------------|
| 1 | xxxx-xx-xx | 1 |
| 2 | xxxx-xx-xx | 2 |
+---------------+---------------+---------------+
+---------------------------------------------------------------+
| BillItem |
|---------------------------------------------------------------|
|BillItemID (pk)| Quantity | BillID (fk) |ProductID (fk) |
|---------------|---------------|---------------|---------------|
| 1 | 10 | 1 | 1 |
| 2 | 10 | 1 | 2 |
| 3 | 10 2 | 2 |
+---------------+---------------+---------------+---------------+
+-----------------------------------------------+
| Product |
|-----------------------------------------------|
| ProductID(pk) | ProductName | Price |
|---------------|---------------|---------------|
| 1 | Product1 | XX |
| 2 | Product2 | XX |
| 3 | Product3 | XX |
+---------------+---------------+---------------+
+-------------------------------+
| Account |
|-------------------------------|
| AccID(pk) | UserName |
|---------------|---------------|
| 1 | AA |
| 2 | BB |
+---------------+---------------+
用户购买产品。对于每个产品系统生成一个账单项目。一张账单可以有很多账单项目。用户可以再次购买相同的物品,不同的物品或两者的组合。我想知道用户在特定时间段内从每种产品购买了多少物品。
预计:
+-----------------------------------------------+
| ProductName | UserName | Quantity |
|---------------|---------------|---------------|
| Product1 | AA | 10 |
| Product2 | AA | 10 |
| Product3 | AA | 0 |
| Product1 | BB | 0 |
| Product2 | BB | 10 |
| Product3 | BB | 0 |
+---------------+---------------+---------------+
我尝试至今:
SELECT Product.ProductName AS ProductName,
Account.UserName AS UserName,
SUM(Billitem.Quantity) AS Quantity
FROM billitem
INNER JOIN Product ON BillItem.ProductID = Product.ProductID
INNER JOIN Bill ON Billitem.BillID = Bill.BillID
INNER JOIN Account ON Bill.AccID = Account.AccID
WHERE Bill.BillDate >= 'xxxx-xx-xx'AND Bill.BillDate <= 'xxxx-xx-xx'
GROUP BY UserName, ProductName
结果:
|-----------------------------------------------|
| ProductName | UserName | Quantity |
|---------------|---------------|---------------|
| Product1 | AA | 10 |
| Product2 | AA | 10 |
| Product2 | BB | 10 |
+---------------+---------------+---------------+
有什么办法与MySQL查询实现这一目标?
是什么问题?这个结果是什么意思?它预期或你的结果上述查询?其查询结果为 – underscore
。我其实想要类似 –
这样的东西有什么问题? – underscore