【发布时间】:2018-09-17 15:47:10
【问题描述】:
我正在使用此查询来显示带有发票和付款值的 Saldo 列。 效果很好,但如果我没有发票但我有付款,我可以看到它,直到我添加发票。 怎么改?
select B.razonsocial as Empresa, Facturas ,
IFNULL(pay,0) as Pagos, (Facturas - IFNULL(pay,0)) Saldo
FROM (select TblFacturasCompras.id_proveedor, TblProveedores.razonsocial,
SUM(case when TblFacturasCompras.tipocomprobante = 'A' or TblFacturasCompras.tipocomprobante='B' or TblFacturasCompras.tipocomprobante = 'NDA' or TblFacturasCompras.tipocomprobante = 'NDB' or TblFacturasCompras.tipocomprobante = 'C' or TblFacturasCompras.tipocomprobante = 'NDC' or TblFacturasCompras.tipocomprobante = 'X' then TblFacturasCompras.total else -TblFacturasCompras.total end) as Facturas
from TblFacturasCompras left join TblProveedores on TblFacturasCompras.id_proveedor = TblProveedores.id group by TblProveedores.id) A
LEFT JOIN (select TblProveedores.id, TblProveedores.razonsocial, SUM(TblRecibosCompras.total) as Pay from
TblProveedores left join TblRecibosCompras on TblRecibosCompras.id_proveedor = TblProveedores.id group by TblProveedores.id) B ON A.id_proveedor = B.id
where B.razonsocial <> '' order by B.razonsocial Asc
【问题讨论】:
-
请添加最低限度的样本数据,以显示您的查询不起作用的情况。同时分享预期的输出和你的查询得到的输出!
-
例如,我有表格发票和表格付款,关系是由供应商在两个表格中建立的。我必须检查有多少付款,发票和显示差异,如果我在同一供应商的每张桌子上都有一个注册表,效果很好,但如果我只有付款,没有发票,我无法得到结果。
-
我已经用 Right Join 解决了
标签: mysql payment relation invoices