我有两个表汇款和汇票,我试图找出什么是汇款和起草的区别。
这是我到目前为止所拥有的,但它没有给我只在其中一个表上的记录
SELECT remittance.loan_no, remittance.inv_loan_no, remittance.ll_remittance,
draft.fm_loan_number, draft.draft_amount,
(remittance.ll_remittance) - (draft.draft_amount) AS difference
FROM remittance FULL JOIN draft
ON remittance_.inv_loan_no = draft.fm_loan_number
WHERE (remittance.ll_remittance) - (draft.draft_amount)<> 0.00;
可能是因为我在计算差额时,缺少的汇款或汇票金额中有空值,这就是为什么我没有得到差额的任何结果。
我原以为完全联接会给我只在其中一个表上,而在其他表列中为空的贷款。
谢谢您,
以下是示例数据:
汇款表、汇票表、查询结果
我用红色突出显示了查询结果中没有显示的贷款
2条答案
按热度按时间e5njpo681#
可能是因为我在计算差额时,缺少的汇款或汇票金额中有空值,这就是为什么我没有得到差额的任何结果。
对!添加
where
完全联接的子句总是很棘手的,因为筛选是在联接的数据集上进行的。但是,我认为在
on
改为子句。ckx4rj1h2#
如果每个表中每个贷款只有一行,那么
coalesce()
就您的目的而言:如果有多行,则需要预聚合。
这是一个sql小提琴。