如何从2个表中总结列价没有关系?

时间:2017-12-05 19:54:04

标签: mysql summarization

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

我想总结一下tableA和tableB的所有销售情况。这将是总和(tblA.price)+ sum(tblB.price)AS total。

我该如何执行该查询?

3 个答案:

答案 0 :(得分:1)

@cjsfj显示的联盟可行,以及其他几个选项:

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

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

答案 1 :(得分:0)

快速而肮脏。工会并不好。但是如果你有固定数量的表,这将有效。性能可能会变得棘手,而且它肯定不是很漂亮,但会回答你的问题。

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

答案 2 :(得分:0)

为了补充其他答案,当其中一个表没有结果时,我遇到了一些问题。它返回null。出于这个原因,我必须过滤该结果并将其转换为 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';