首页 > 解决方案 > 像 jan=Jan 和 feb =jan+feb 使用 mysql 和 March 的月份总和 = jan+feb+march

问题描述

我的查询是我有名称列、金额列、月份列。

例如,如果名字是 Sandeep,他在 Jan 月份的金额为 90,如下所示

Name    Amount   month new column
Sandeep  90      Jan    Jan(amount)=90
Sandeep  100     Feb.    (jan+feb)amount=190
Sandeep  120     March  (jan+feb+march)=310
Mandeep  70      April   (0+0+0+April)=70
Mandeep  20      May      (0+0+0+70+20)=90

我想要使​​用 MySQL 查询的具有与上述相同格式的新列

标签: mysql

解决方案


我会建议一个完整的其他方法。

将您的每月数据存储在每个名称的一行中。使您的数据成为包含年份和月份的整数

CREATE TABLE t
(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    yearmonth INT,
    amount INT
);

INSERT INTO t (name, yearmonth, amount) 
    VALUES ('Sandeep', 202101, 90),
           ('Sandeep', 202102, 100),    
           ('Sandeep', 202103, 120),    
           ('Mandeep', 202104, 70), 
           ('Mandeep', 202105, 20);

然后您可以轻松请求所需的所有数据例如:

SELECT name, SUM(amount)
FROM t
WHERE name = 'Sandeep' AND yearmonth BETWEEN 202101 AND 202103

我为你创造了一个小小提琴。

https://www.db-fiddle.com/f/gZ1u7yB65FddjfKLU92tHE/0


推荐阅读