繁体   English   中英

如何获得特定日期的产品数量总和?

[英]How to get sum of quantity of products from a specific date?

表1销售额

id   |  date
=================
1    |  10 july
2    |  10 july
3    |  20 july

表2产品

sale_id   |  product_name | quantity
====================================
1         | cold drink    | 2
1         | Samosa        | 3
1         | Burger        | 1
2         | Burger        | 4
3         | Shwarma       | 1

我想获取在特定日期售出的产品名称及其数量,例如7月10日,id为1,2的两次销售和该日期售出的产品分别是

cold drink  2
samosa      3
Burger      5 (1 sold in sale 1 and 4 sold in sale 2)

我该如何在mysql中做到这一点?

我已尝试使用“ Select product_name, SUM(quantity) From Products GROUP BY product_name总和Select product_name, SUM(quantity) From Products GROUP BY product_name但是此查询为我提供了特定日期的所有我想要的总和,我该如何关联这两个表。

至少有两个解决方案。

  1. 您可以使用子选择:

     SELECT product_name, SUM(quantity) sum, date FROM Products JOIN ( SELECT * FROM Sales WHERE date = '2019-07-10' ) s ON s.id = Products.sale_id GROUP BY product_name, date ORDER BY sum; 

    SQLFiddle的结果。

  2. 您可以使用HAVING进行日期匹配:

     SELECT product_name, SUM(quantity) sum, date FROM Products JOIN Sales ON id = sale_id GROUP BY product_name, date HAVING date = '2019-07-10' ORDER BY sum; 

    SQLFiddle的结果。

如果您需要整天的数据,请使用此

SELECT products.product_name, sales.date, sum(products.quantity) 
FROM products LEFT JOIN sales 
ON products.sale_id = sales.id group by products.product_name, sales.date;

如果您想要特定日期的数据,则可以使用以下方法:

SELECT products.product_name, sales.date, sum(products.quantity) 
FROM products LEFT JOIN sales 
ON products.sale_id = sales.id WHERE sales.date = '10 july' group by products.product_name, sales.date;

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM