【问题标题】:How to summarize column price from 2 tables with no relationship?如何从没有关系的 2 个表中总结列价格?
【发布时间】:2017-12-05 19:54:03
【问题描述】:

在 mysql 数据库中,我有 tblA.price 和 tblB.price。他们之间有no relationship

我想汇总表 A 和表 B 的所有销售额。这将类似于 sum(tblA.price)+sum(tblB.price) AS total。

我该如何执行该查询?

【问题讨论】:

    标签: mysql summarization


    【解决方案1】:

    @cjsfj 显示的联合会起作用,这里有几个其他选项:

    1. 执行两个标量子查询并将它们相加。

      select (select sum(price) from tblA) + (select sum(price) from tblB) as total;
      
    2. 从您的应用程序中执行两个查询,获取每个查询的结果,然后将它们相加。

    【讨论】:

      【解决方案2】:

      又快又脏。工会不是很好。但是,如果您有固定数量的表,这将起作用。性能可能会变得棘手,而且肯定不是很漂亮,但可以回答您的问题。

      select sum(price) as totalprice from
      (select sum(a.price) as price
      from a
      union all
      select sum(b.price) as price
      from b) as ab
      

      【讨论】:

        【解决方案3】:

        为了补充其他答案,当其中一张表没有结果时,我遇到了一些问题。它返回空值。出于这个原因,我必须过滤该结果并将其转换为 0。刚刚做了IFNULL(SUM(field),0)

        这是我的最终查询:

        SELECT 
           IFNULL(SUM(tblA.price),0) + (SELECT 
                   IFNULL(SUM(fieldB),0)
               FROM
                   tblB
               WHERE
                   creation_date BETWEEN '$startDT' AND DATE_SUB(NOW(), INTERVAL 1 HOUR) AS amount
        FROM
           tableA tblA
        WHERE
           tblA.transaction_date BETWEEN 'startDT' AND DATE_SUB(NOW(),
               INTERVAL 1 HOUR)
               AND tblA.service_type <> 'service1'
               AND tblA.service_type <> 'service2'
               AND tblA.service_type <> 'service3';
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-07-07
          • 2020-12-25
          • 1970-01-01
          • 1970-01-01
          • 2018-12-21
          • 1970-01-01
          • 1970-01-01
          • 2012-08-16
          相关资源
          最近更新 更多