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

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

我需要构建一个 SQL 查询以从 table 中查找行,其中列值 "total cost" 等于其他两列 "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 用于计算特定 而非 的总和。因此,您使用 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";