SQL查询,查找列值等于同一行中其他两列之和的行


SQL query to find rows where a column value is equal to the sum of tow other columns in the same row

我需要构建一个SQL查询,从表中查找列值"总成本"等于同一行中另外两列"价格"answers"折扣"之和的行。

这是我的问题:

$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用于计算特定而非的总和。因此,您使用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";