gpt4 book ai didi

PHP MySQL 查询(来自不同行的总和)

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:35 25 4
gpt4 key购买 nike

我有一个用于在线预订日历的小型 MySQL 数据库。现在我想从这个日历中获取一些统计数据。我正在向日历值中的每个条目添加(全额支付、部分支付和状态(支付、未支付、保留等))。

我附上了截图的图像。如您所见,有 4 个不同的 custom_attribute_id。 ID 1 正在保存状态,ID 2 保存全价,ID 3 保存已支付的价格。 entity_id 列一起保存。所以例如entity_id 为 232 的所有 4 个条目属于一起。

我现在要显示以下内容:1. 所有全价的总和(因此 custom_attribute_id 2)。这是我用这段代码完成的:

$result = mysql_query('SELECT SUM(attribute_value) AS value_sum
FROM custom_attribute_values WHERE custom_attribute_id=2');
$row = mysql_fetch_assoc($result);
$sum = $row['value_sum'];

这正在运行并向我显示在日历中输入的所有全价的总和。

使用相同的代码,我还显示了已部分支付金额的总和。

但现在的问题是,我想根据状态显示 attribute_value 的总和。因此,当 custom_attribute_id=2 且相关 entity_id 的 attribute_value 为“Reserviert”时,代码应汇总所有值。

如果有人能帮助我,或者至少让我知道,如果这是可能的,那就太好了。我无法重新设计数据库,因为此代码是从日历系统给出的。

这里的数据库是文本:

ID custom_attribute_value_id attribute_value entity_id attribute_category
1124 1 Anfrage 233 1
1125 2 1188 233 1
1126 4 233 1
1127 3 015757817858 233 1
1053 1 Reserviert 232 1
1054 2 1700 232 1
1057 3 017697544266 232 1
1058 4 232 1
1039 2 573 231 1
1040 3 088259216300 231 1
1042 1 Reserviert 231 1
1037 3 0043676845617203 230 1
1045 2 2346,50 230 1
1046 1 Reserviert 230 1
1032 1 Anfrage 229 1
1033 2 474 229 1
1034 3 229 1
1027 1 Anfrage 228 1
1029 3 228 1
1030 2 588,50 228 1
1024 3 01729843043 227 1
1025 1 Reserviert 227 1
1023 2 990 227 1

最佳答案

您需要一个自连接,这样您就可以在每个实体的同一行中同时显示状态和相关的全价。基本上,您将表的一部分仅包含状态数据,而表的另一部分仅包含完整价格数据,并将它们连接到同一实体 ID 上。在结果集上,您可以轻松获得总和,同时使用 WHERE 将行限制为具有“Reserviert”状态的行。

SELECT SUM(t2.attribute_value) AS value_sum
FROM custom_attribute_values t1 JOIN custom_attribute_values t2
ON t1.entity_id = t2.entity_id
AND t1.custom_attribute_id = 1
AND t2.custom_attribute_id = 2
WHERE t1.attribute_value = 'Reserviert'

在此查询中,attribute_value 包含 t1 的状态信息和 t2 的全价。

关于PHP MySQL 查询(来自不同行的总和),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854500/

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