首页 > 解决方案 > 如何两个表和计算

问题描述

我有两张桌子。

我想对两个表使用 chart_num 值。

表 hospital_payment_data

id  chart_num   treatment_fees_difference    treatment_fees_check_division
1        9        200000                             test
2        9        100000                             test

表advenced_pa​​yment

id  chart_num      advenced_amount
1      9                100000

我要结果

COUNT       if_treatment_fees_check_division     sum_init_amount
  2                      200000                  100000

我想要treatment_fees_check_division = 'test' count 并且我想要treatment_fees_check_division = 'test' 条件总和treatment_fees_difference + advenced_amount 我怎样才能达到我想要的结果?你能提供解决方案吗?

标签: mysqlsqlmariadb

解决方案


我认为您正在寻找如下查询-

在这里演示

注意:根据您的情况和数据,if_treatment_fees_check_division 的 SUM 应为 300000

SELECT A.chart_num,
COUNT(*) COUN,
SUM(CASE 
    WHEN treatment_fees_check_division = 'test' THEN treatment_fees_difference 
    ELSE 0 
END) if_treatment_fees_check_division,
(
    SELECT SUM(advenced_amount) 
    FROM advenced_payment 
    WHERE chart_num = A.chart_num
) sum_init_amount
FROM hospital_payment_data A
GROUP BY A.chart_num

推荐阅读