我需要在result上得到(debe和haber)列,我使用union all,但我总是只得到这两列中的一列。
我的问题是:
(SELECT tblfacturas.id AS ID,
tblclientes.razonsocial AS Cliente,
tblfacturas.fecha AS Fecha,
tblfacturas.tipocomprobante AS Tipo,
tblfacturas.nrofacturacompleto AS Numero,
tblfacturas.total AS Debe
FROM tblfacturas
left join tblclientes
ON tblclientes.id = tblfacturas.id_cliente
WHERE tblclientes.razonsocial = 'S.A.')
UNION ALL
(SELECT tblrecibos.id AS ID,
tblclientes.razonsocial AS Cliente,
tblrecibos.fecha AS Fecha,
'R' AS Tipo,
tblrecibos.nrorecibocompleto AS Numero,
tblrecibos.total AS Haber
FROM tblrecibos
left join tblclientes
ON tblclientes.id = tblrecibos.id_cliente
WHERE tblclientes.razonsocial = 'S.A.')
ORDER BY fecha
1条答案
按热度按时间xhv8bpkk1#
如果不存在列debe和haber,则需要null,否则将在相同的列(debe)中获得这两个结果
还有一个建议。。在where子句中,左联接中包含的列将作为不包括行的内部联接使用。如果不存在该列的左联接值,则应
或者移动on子句中的where条件(如果还需要not macthing行)
如果只需要匹配的行,也可以使用内部联接