gpt4 book ai didi

mysql - 1 列 2 结果的总和每个结果不同!如此简单但无法正常工作

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

好的,这很简单,但已经搜索了 3 个小时,仍然无法正常工作!

场景是我有一个数据库,其中有 2 个业务的单独成本,我想对每个业务的成本求和并显示在屏幕上。现在我知道这很简单,只需两个 SELECTS 即可轻松完成。但我想在一个查询中做到这一点!

数据库

|cost|business|
|100 | 1 |
|200 | 2 |
|200 | 1 |
|300 | 2 |

所以从上表我们知道 b1 = 300 和 b2 = 500!但我的查询都不起作用!

我尝试过 UNION 和 CASE,但对它们不熟悉。我的查询:

第一次尝试:

$buscost = mysql_query("SELECT FORMAT(sum(`cost`),2) as `b1` FROM `outgoing` WHERE `business`=1 
UNION
SELECT FORMAT(sum(`cost`),2) as `b2` FROM `outgoing` WHERE `business`=2")
or die(mysql_error());
$buscost = mysql_fetch_array($busowe);

第二次尝试:

$buscost = mysql_query("SELECT 
CASE WHEN `business` = 1 THEN FORMAT(sum(`cost`),2) END AS `b1` ,
CASE WHEN `business` = 2 THEN FORMAT(sum(`cost`),2) END AS `b2`
FROM `outgoing` WHERE `active`='yes' ");
$buscost = mysql_fetch_array($buscost);

*cost 设置为 float(11,2)。

我确定我很接近,我只是不够了解,无法弄清楚,在这里发现了类似的问题,但没有一个答案有帮助!

哦,如果我 print_r,第一个只获取 b1 的总和,b2 不存在!和我得到的第二个数组是第一个案例的结果集,案例 2“b2”为空,但存在!我检查了表格,里面有两个业务的测试数据。

非常感谢任何建议或解决方案。

编辑:忘记提及所有结果还需要使用 where active='yes'

进行过滤

最佳答案

你需要分组:

SELECT business, FORMAT(sum(`cost`),2) AS cost
FROM outgoing
WHERE active = 'yes'
GROUP BY business

如果你想要格式:

business | cost
b1 | 300
b2 | 500

SELECT
(
SELECT FORMAT(sum(`cost`),2) as `b1`
FROM `outgoing`
WHERE `business`=1 AND active = 'yes'
GROUP BY business
) AS b1,
(
SELECT FORMAT(sum(`cost`),2) as `b1`
FROM `outgoing`
WHERE `business`=2 AND active = 'yes'
GROUP BY business
) AS b2

如果你需要格式

b1 | b2
300| 500

关于mysql - 1 列 2 结果的总和每个结果不同!如此简单但无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10708426/

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