我正在进行查询
SELECT ROUND((SUM(refracciones.total)+(serviciosrealizados.total)),2)
FROM refracciones, serviciosrealizados
WHERE refracciones.id_ticket = '$idticket' AND serviciosrealizados.id_ticket = '$idticket'
2张表:
2列:
目前查询正在运行但是我在两个表中插入数据。
我希望查询显示refracciones.total + serviciosrealizados.total的总数,如果其中一个字段为空,则显示我的总数为refracciones.total或serviciosrealizados.total
答案 0 :(得分:1)
如果,例如,id 5仅在serviciosrealizados中,则此查询应该执行您想要的操作:
SELECT ROUND(SUM(IFNULL(r.total, 0)) + IFNULL(s.total, 0), 2)
FROM refracciones r
LEFT OUTER JOIN serviciosrealizados s ON r.id_ticket = s.id_ticket
WHERE r.id_ticket = 5
UNION
SELECT ROUND(SUM(IFNULL(r.total, 0)) + IFNULL(s.total, 0), 2)
FROM refracciones r
RIGHT OUTER JOIN serviciosrealizados s ON r.id_ticket = s.id_ticket
WHERE s.id_ticket = 5;
您可能必须忽略任何空行。
这是一个SQLFiddle作为演示。
如果可能,您可能希望查看数据库设计,因为它看起来很尴尬。