如何从 2 个没有关系的表中汇总列价格?
How to summarize column price from 2 tables with no relationship?
在 mysql 数据库中,我有 tblA.price 和 tblB.price。他们之间有no relationship
。
我想汇总表 A 和表 B 的所有销售额。它会是这样的 sum(tblA.price)+sum(tblB.price) AS total.
我如何执行该查询?
快速而肮脏。工会不是很好。但是,如果您有固定数量的表,这将起作用。性能可能会变得棘手,而且绝对不是很好,但可以回答您的问题。
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
@cjsfj 展示的联合会起作用,这里有几个其他选项:
执行两个标量子查询并将它们相加。
select (select sum(price) from tblA) + (select sum(price) from tblB) as total;
从您的应用程序执行两个查询,获取每个查询的结果,然后将它们相加。
为了补充其他答案,我遇到了一些问题,其中一张表没有结果。它返回空值。出于这个原因,我必须过滤该结果并将其转换为 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';
在 mysql 数据库中,我有 tblA.price 和 tblB.price。他们之间有no relationship
。
我想汇总表 A 和表 B 的所有销售额。它会是这样的 sum(tblA.price)+sum(tblB.price) AS total.
我如何执行该查询?
快速而肮脏。工会不是很好。但是,如果您有固定数量的表,这将起作用。性能可能会变得棘手,而且绝对不是很好,但可以回答您的问题。
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
@cjsfj 展示的联合会起作用,这里有几个其他选项:
执行两个标量子查询并将它们相加。
select (select sum(price) from tblA) + (select sum(price) from tblB) as total;
从您的应用程序执行两个查询,获取每个查询的结果,然后将它们相加。
为了补充其他答案,我遇到了一些问题,其中一张表没有结果。它返回空值。出于这个原因,我必须过滤该结果并将其转换为 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';