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

时间:2016-08-04 19:03:29

标签: php mysql sql phpmyadmin

我需要构建一个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两个值。

1 个答案:

答案 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";