【发布时间】:2020-07-26 16:38:46
【问题描述】:
我只想比较表 1 和表 2 一次。 我想在每一面打印与错误金额或数据错误相同的金额。
1.表名:hospital_payment_data
id chart_num chart_name visit card_amount_received
1 9740 t1 2019-01-02 1000
2 23143 t2 2019-01-02 3000
3 14220 t3 2019-01-02 3000
4 2000 t4 2019-01-02 4000
5 3000 t5 2019-01-02 5000
6 3000 t5 2019-01-02 5000
7 4000 t6 2019-01-02 6000
8 5000 t7 2019-01-02 6000
2.表名:credit_card
id card_date advenced_amount
1 2019-01-02 1000
2 2020-01-02 2000
3 2020-01-02 3000
4 2020-01-02 4000
5 2020-01-02 10000
6 2020-01-02 6000
7 2020-01-02 9000
我想要结果
在我的查询中:
SELECT
hospital_payment_data.id,
chart_num,
visit,
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
left join credit_card on date(credit_card.card_date) = visit AND hospital_payment_data.card_amount_received = credit_card.amount
GROUP BY chart_num, visit
这是我的错误结果:
是否必须添加或修改数据库表才能按需要打印?还是我必须添加关系?指定了所有可用的数据值。
【问题讨论】:
-
正如你所说,你已经问过很多次了。你接受了一个答案:stackoverflow.com/questions/61135166/…
-
@lurker 我试过了,但没有成功。
-
如果它不起作用,你为什么接受它?您应该已经对该答案进行了评论,并提供了一些信息来解释为什么它确实回答了您的问题。
-
问题的一部分(以及为什么您之前没有收到回复)是完全清楚您所追求的。我正在查看您的表格和您的“我想要结果”,但无法理解它。您说,我想打印与错误金额相同的金额,但是当金额相同时,您想要的结果表显示“ok”。您需要进一步解释您要比较的是什么。
-
也许您正在寻找一个
FULL OUTER JOIN,它在MySQL 中不存在?可以模拟;搜索它。
标签: mysql sql database mariadb