首页 > 解决方案 > 将每个选定的行乘以某个值,然后在单个查询中对所有内容求和

问题描述

我有一张桌子,看起来像这样:

在此处输入图像描述

我想计算 100 名成人和 20 名儿童的门票总价。我不知道如何添加多个 WHERE 来选择正确的行进行计算。到目前为止,我有类似的东西

SELECT
  Fee * 100 AS adult,
  Fee * 20  AS child,
  sum(*)
FROM fees
WHERE adult.Type = 'adult' AND adult.Clubname = 'aquapark'
WHERE child.Type = 'child' AND child.Clubname = 'aquapark';

在这种情况下,我希望输出为 110 000。

感谢您的任何帮助!

标签: mysqlsql

解决方案


听起来您可以使用条件聚合。

SELECT sum(CASE type
             WHEN 'adult' THEN
               fee * 200
             WHEN 'Child' THEN
               fee * 50
             ELSE 
               0
           END)
       FROM fees
       WHERE clubname = 'aquapark';

推荐阅读