gpt4 book ai didi

mysql - 如何在具有连接列的表达式之间使用

转载 作者:行者123 更新时间:2023-11-30 00:37:53 24 4
gpt4 key购买 nike

我正在尝试从一张表中获取数据。但这是一个旧表,其中有数千行,但日期列分开。我的意思是,月份和年份在不同的列中。

|id | member | month | year | balance |
|-------------------------------------|
|1 | 1001 | 11 | 2013 | 100 |
|2 | 1002 | 11 | 2013 | 120 |
|3 | 1003 | 11 | 2013 | 105 |
|4 | 1001 | 12 | 2013 | 140 |
|5 | 1002 | 12 | 2013 | 130 |
|6 | 1003 | 12 | 2013 | 80 |
|7 | 1001 | 1 | 2014 | 90 |
|8 | 1002 | 1 | 2014 | 20 |
|9 | 1003 | 1 | 2014 | 180 |
--------------------------------------|

这是示例表。我尝试获取 2013 年 10 月到 2014 年 2 月之间的数据。

SELECT 
SUM(balance)
FROM
sample_table
WHERE
CONCAT(month,year) BETWEEN 102013 AND 022014

此查询给我空结果。我怎样才能得到真实的结果?任何人都可以给我一个想法。

-- 编辑--

日期范围可以更改。所以,如果我能得到真实的结果,之间是最好的解决方案。

最佳答案

尝试像这样表达 where 子句:

SELECT SUM(balance) 
FROM sample_table
WHERE year*100 + month between 201301 and 201402;

也就是说,以数字而不是字符串的形式进行比较。对于字符串,您会遇到前导零以获得正确比较的问题。

更重要的是,使用格式 YYYYMM 而不是 MMYYYY。前者可以进行比较,后者则不能。

关于mysql - 如何在具有连接列的表达式之间使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22014561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com