mysql查询当年度每个月份入库和出库的商品数量,没有的月份显示0
时间: 2024-12-13 07:22:09 浏览: 4
基于Spring Boot框架搭建的药店药品库存追踪与管理系统,可以统计药品的入库与出库的数量.zip
要在MySQL中查询当年度每个月份入库和出库的商品数量,并且对于没有数据的月份显示0,你可以使用DATE_FORMAT函数来提取日期中的年月,然后通过LEFT JOIN和COALESCE函数来获取所需的值。假设我们有两个表`orders`(订单记录,包含字段`order_date`、`status`表示入库(IN)或出库(OUT))和`products`(商品信息),可以尝试这样的查询:
```sql
SELECT
YEAR(order_date) AS year,
MONTH(order_date) AS month,
SUM(CASE WHEN status = 'IN' THEN 1 ELSE 0 END) AS in_count,
SUM(CASE WHEN status = 'OUT' THEN 1 ELSE 0 END) AS out_count
FROM
orders o
LEFT JOIN
products p ON o.product_id = p.product_id
WHERE
YEAR(order_date) = YEAR(CURRENT_DATE)
GROUP BY
year, month
ORDER BY
year, month;
```
这个查询做了以下几件事:
1. 使用`YEAR()`和`MONTH()`函数从`order_date`字段提取年份和月份。
2. 对于入库和出库分别使用`CASE`语句将状态转换成整数(1代表入库,0代表不出库)并计算总数。
3. 如果某个月份没有商品入库或出库,由于`SUM()`函数会返回NULL,而`COALESCE(NULL, 0)`会将其替换为0。
4. 结果按年月排序。
阅读全文