【发布时间】:2020-04-13 06:48:33
【问题描述】:
我想比较两张表。 但是,它们不是在同一日期进行比较的。
1.表名:hospital_payment_data
id chart_num chart_name visit card_amount_received
1 9740 t1 2019-01-02 500
2 9740 t1 2019-01-02 500
3 23143 t2 2019-01-02 2000
4 14220 t3 2019-01-02 3000
2.表名:credit_card
id card_date advenced_amount
1 2019-01-02 1000
2 2020-01-02 2000
3 2020-01-02 3000
3.table 名称:图表
id name
9740 t1
23143 t2
14220 t3
当我发送查询时,我得到以下信息:
select
charts.id as chart_num,
visit,
charts.name as chart_name,
sum(card_amount_received) as card_amount_received,
credit_card.card_date,
credit_card.amount as amount,
if(credit_card.amount = sum(card_amount_received), 'ok', 'error') as result
from hospital_payment_data
join charts on charts.id = chart_num
left join credit_card on date(credit_card.card_date) = visit
group by chart_num, visit
错误的结果:
我想要结果
如何解决我的查询?请帮帮我。
【问题讨论】:
-
你的错误结果和预期的结果是一样的
-
修改完成
-
常见的JOIN乘法。在子查询中计算总和,然后加入另一个表。
-
我认为您在 credit_card 表中缺少一列,因为除了日期之外,无法将此表记录链接到 hospital_payment_data 表中的任何卡。这里应该有另一个外键链接到记录所属的卡
-
@Akina 你能详细解释一下吗?
标签: mysql sql database mariadb