Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将两个Mysql总和选择查询组合为一个查询_Mysql_Sum - Fatal编程技术网

将两个Mysql总和选择查询组合为一个查询

将两个Mysql总和选择查询组合为一个查询,mysql,sum,Mysql,Sum,我有以下两个查询的和值 问题1:: 从表1中选择总和(价格),其中acc\u id=“555” 查询2: 从表2中选择总和(价格),其中账户='555'&&active='1' 我尝试组合这两个查询,但给出了错误的求和结果,例如,如果query1的求和为:-86500而Query2的求和为:76000,则结果必须是-10500,但结果显示为类似-486000 我试着这样做,但没有得到预期的结果 SELECT SUM(t1.price + t2.price) AS TotalCredit FRO

我有以下两个查询的和值
问题1::

从表1中选择总和(价格),其中
acc\u id
=“555”

查询2:

从表2中选择总和(价格),其中
账户
='555'&&active='1'

我尝试组合这两个查询,但给出了错误的求和结果,例如,如果
query1的求和为:-86500
Query2的求和为:76000
,则结果必须是
-10500
,但结果显示为类似
-486000

我试着这样做,但没有得到预期的结果

SELECT SUM(t1.price + t2.price) AS TotalCredit 
FROM TABLE1 AS t1, TABLE2 AS t2 
WHERE t1.`acc_id` = '555' && t2.`Account`='555' && t2.`Active`='1'
表格图像:

试试这个

  SELECT (t1.price + t2.price) AS TotalCredit 
    FROM TABLE1 AS t1, TABLE2 AS t2 
    WHERE t1.`acc_id` = '555' && t2.`Account`='555' && t2.`Active`='1'
编辑:

我想你在找什么

 SELECT (SUM(t1.price)+SUM(t2.price) )/2  AS TotalCredit 
FROM Table1 AS t1, Table2 AS t2 
WHERE t1.`acc_id` = '555' && t2.`account`='555' && t2.`active`='1'
试试这个

SELECT SUM(C.TOTAL) AS TOTAL_CREDIT FROM (SELECT SUM(A.price) AS TOTAL FROM TABLE1 A WHERE A.acc_id = '555'
UNION ALL
SELECT SUM(B.price) AS TOTAL FROM TABLE2 B WHERE B.account = '555' && B.active='1') C;
试试看

SELECT (SUM(t1.price) + SUM(t2.price)) AS TotalCredit 
FROM TABLE1 AS t1, TABLE2 AS t2 
WHERE t1.`acc_id` = '555' && t2.`Account`='555' && t2.`Active`='1'

由于加入,记录的数量会被复制,因此总和的值会更高 试试这个

SELECT sum(prc) 
FROM (
    SELECT SUM(price) prc FROM TABLE1 WHERE acc_id = '555'
    union all 
    SELECT SUM(price) prc FROM TABLE2 WHERE account = '555' && active='1'
) a
这个怎么样:

SELECT SUM(a) 
FROM
  (SELECT SUM(price) AS a
   FROM TABLE1 
   WHERE acc_id = '555'
   UNION ALL
   SELECT SUM(price) AS a
   FROM TABLE2 
   WHERE account = '555' && active='1')

加入
可能会更好。:)如果您能向我们展示表模式,那就更好了。下面是一个基于一些假设样本数据的解决方案

样本数据:

表1:

ID  PRICE
11  200
55  300
33  200
44  100
55  500
表2:

ID  PRICE   ACTIVE
1   200     0
2   300     1
55  200     0
55  100     1
55  400     1
查询:

select sum(t.price) + x.tb2credit
from tb1 as t
inner join
(SELECT id, SUM(price) AS Tb2Credit 
FROM tb2
WHERE id = 55
and `Active`=1) x
on t.id = x.id
结果:

SUM(T.PRICE) + X.TB2CREDIT
1300


您没有提到一个表与另一个表之间的关系,因此不知道如何(或是否)以有意义的方式连接它们。你能给出你试图求和的数据的例子,并谈谈为什么数据分布在两个表中吗?@root试试我的解决方案,我期待着,你会得到你期望的结果。但是,我仍然在等待你的回应。我添加了我两个孩子的照片table@root别忘了接受有用的答案。:)谢谢大家,问题已通过Akhil回答解决谢谢goodmood,但现在将结果作为数组给出,如何将一个结果作为和?现在查看我的编辑和演示,尝试更改演示中的值并查看结果谢谢:-“但返回错误的结果:,仅更改其中一个数字进行测试。谢谢,但得到此错误
错误代码:1248\n每个派生表都必须有自己的别名
。。。我加了一张我两个孩子的照片table@root现在试试。我已经更新了我的查询。如果有帮助的话。然后接受它,否则,让我知道。谢谢,但给出错误:
未知列“字段列表”中的“A.price”
,我接受akhil回答,谢谢大家。。。这是一个可怕的问题:-“没关系。你可能会做错什么,因为我验证了上面的查询。然而你找到解决办法了。我很高兴:)谢谢,但是有这个错误:
error code:1248\n每个派生表都必须有自己的别名
您注意到内部查询后的
a
了吗?:哦,谢谢,抱歉,我留下了那个字符。。。现在开始。。。等待在我的真实表上进行测试。请解释字母“a”在做什么?@chikitin“Mysql中的每个派生表都必须有一个别名”。@root请查看这里的解决方案。请向我们展示您的表架构:)
acc_id
表1和
account
表2必须是准确的,我已经在第一篇文章中添加了我的表的图像,请查看它。@root您所需要做的就是,
sum
表2
价格
对于给定的
账户id
,如果
active=1
。然后将其添加到表1
sum
中,以获得相同的
acct id
。这就是我提出的问题背后的逻辑。我将尝试使用您的确切信息:)谢谢,但出现以下错误:
错误代码:1248\n每个派生表在SQLYOG上都必须有自己的别名