我需要构建一个SQL查询来查找表中的行,其中列值“总成本”等于同一行中其他两列“price”,“discount”的总和。
这是我的疑问:
$sql = "SELECT * FROM pedido INNER JOIN clientes ON
pedido.clientes_id=clientes.clientes_id INNER JOIN chofer
ON pedido.chofer_id=chofer.chofer_id WHERE clientes.clientes_nombre
LIKE '%$filtro_nombre%' AND pedido.pedido_fecha LIKE '%$filtro_fecha%'
AND pedido.pedido_costo = SUM(pedido_descuento + pedido_saldo)
ORDER BY pedido_id DESC LIMIT 20 OFFSET $offset";
查询可以删除SUM()的一部分:
AND pedido.pedido_costo = SUM(pedido_descuento + pedido_saldo)
示例:
$sql = "SELECT * FROM pedido INNER JOIN clientes ON
pedido.clientes_id=clientes.clientes_id INNER JOIN chofer
ON pedido.chofer_id=chofer.chofer_id WHERE clientes.clientes_nombre
LIKE '%$filtro_nombre%' AND pedido.pedido_fecha LIKE '%$filtro_fecha%'
ORDER BY pedido_id DESC LIMIT 20 OFFSET $offset";
我真的不知道如何在SQL查询中SUM两个值。
答案 0 :(得分:3)
SUM
用于计算特定列而非行的总和。因此,使用SUM
的方式无效。满足您的要求。请参阅下面的查询
SELECT *
FROM
pedido
INNER JOIN
clientes ON pedido.clientes_id=clientes.clientes_id
INNER JOIN
chofer ON pedido.chofer_id=chofer.chofer_id
WHERE
clientes.clientes_nombre LIKE '%$filtro_nombre%'
AND
pedido.pedido_fecha LIKE '%$filtro_fecha%'
AND
pedido.pedido_costo = (pedido_descuento + pedido_saldo)
ORDER BY pedido_id
DESC LIMIT 20 OFFSET $offset";