gpt4 book ai didi

mysql - 我需要将条目与 mysql 中的单个表合并

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:38 26 4
gpt4 key购买 nike

在mysql中出现如下问题必须得到这个结果

例如,此表包含列monthamt1amt2amt3 的值;如果 amt1 有值,则 amt2amt3 将为 null 并且对于 amt2 也类似和 amt3。所有列都是 VARCHAR

但是有可能第一行或类似行的值在月份列中包含 amt1 而不是 null

可能是

等于包含 amt2 且不为 null 的月份列中值的第一行或类似行

等等....

如何得到这样的结果

-------------------------------------------------------------------------------------
month | amt1 | amt2 | amt3
-------------------------------------------------------------------------------------
january - 2013 1000 null null
january - 2013 null 2000 null
February - 2013 1000 null null

January - 2013 null 2000 null
February - 2013 null 2000 null

March - 2013 null null 3000
January - 2013 null null 3000
January - 2013 20 null null

February- 2013 null 30 null
March- 2013 null null 40
March- 2013 null 5000 null
March- 2013 null 50 null

所以结果表应该总结那个特定月份的可用金额,如果 null 存在它应该返回 0

-------------------------------------------------------------------------------------
month | amt1 | amt2 | amt3
-------------------------------------------------------------------------------------
January - 2013 1020 2000 0
February - 2913 1000 2030 3000
March - 2013 0 5050 3040


-------------------------------------------------------------------------------------

最佳答案

结合使用SUMSUBSTRINGCOALESCE 以及LOCATE 函数

根据 David Wallace 的建议进行简单快速的查询如下。

 SELECT 
month,
COALESCE(SUM(amt1),0) as amt1,
COALESCE(SUM(amt2),0) as amt2,
COALESCE(SUM(amt3),0) as amt3
From
Table1
GROUP BY
REPLACE(month,' ', '');

工作演示在 http://sqlfiddle.com/#!2/35547/27

关于mysql - 我需要将条目与 mysql 中的单个表合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014776/

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