저는 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