【问题标题】:How to get SUM in Mysql from another table based on first table如何根据第一个表从另一个表中获取 Mysql 中的 SUM
【发布时间】:2016-11-16 15:14:54
【问题描述】:
---------------colete--------------------
| id | id_comanda  | status | id_lista |
----------------------------------------
|    | 21775       | 0      | 3820     |
----------------------------------------
|    | 21776       | 0      | 3820     |
----------------------------------------
|    | 21777       | 0      | 3820     |
----------------------------------------


-----comenzi--------
| id  | taxComanda |
--------------------
|21775| 16.00      |
--------------------
|21776| 00.00      |
--------------------
|21777| 16.00      |
--------------------

我想从表comenzi 中的列taxaComand 中获取SUM,方法是从表colete 中选择列id_lista,所以最后的SUM 为32.00

这是我有的,但不好。:

SELECT a.id_comnda AS a_id_comanda, a.id_lista AS a_id_lista,
b.id AS b_id, b.taxaComanda AS b_taxaComanda
(SELECT sum(taxaComanda) FROM comenzi WHERE b.id = a.id_comanda AS totalTaxaComanda)
FROM colete a
INNER JOIN comenzi b ON b.id = a.id_comanda
WHERE a.id_lista = 3820
GROUP BY a.id_comanda

【问题讨论】:

  • 你的预期输出是什么?
  • taxaComanda: 16.00 + 00.00 + 16.00 = 32.00
  • 为什么?这有什么意义?

标签: mysql get sum


【解决方案1】:

根据您的评论,我没有看到其他答案:

SELECT SUM(b.taxComanda )
FROM colete a
INNER JOIN comenzi b ON b.id = a.id_comanda
WHERE a.id_lista = 3820

【讨论】:

  • 你是凡人中的神 :D 这个迷你查询有效,现在我需要在我的查询中应用它稍微复杂一些。谢谢!
【解决方案2】:

使用子查询和分组 id_lista:

SELECT id_lista, SUM(taxComanda ) as result,
FROM(
     SELECT id_comanda  , status , id_lista, taxComanda 
     from colete
     left join comenzi  on colete.id = comenzi.id_comanda)as sq
group by sq.id_lista

【讨论】:

  • 谢谢@tyro,我会试试这个!这里的人很棒!
猜你喜欢
  • 2021-11-05
  • 1970-01-01
  • 2018-12-08
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
  • 2012-03-23
  • 2016-09-28
相关资源
最近更新 更多