mysql - 根据不同的条件从 SQL 查询中获取多个数据

标签 mysql sql

我有以下代码:

SELECT DISTINCT m.solde_total_client
               ,c.client_nom
               ,co.contenant_nom
FROM `mouvement` m, `client` c, `contenant` co
WHERE c.client_id = m.client_id
AND co.contenant_id = m.contenant_id
ORDER BY m.movement_date DESC
LIMIT 1;

结果,我从一位客户那里获得了一笔总销量。但我想为每个客户的每个内容获得一个。 (但它仍然需要是最后一个日期)

我得到的结果是: sql query result 我想得到几个这样的结果,例如:

Leclerc | Geobox | 50
SuperU  | Box    | 40
...

sold_total_client 是客户在一次出货后的情况,有好几批出货,每一次售出都会更新,所以最后一个日期是实际售出的。所以我必须得到每个客户端的每个内容的最后一步。

最佳答案

您可以尝试通过 client_id、contenant_id 对 max_date 组使用子查询

SELECT 
    m.solde_total_client,
    m.`mouvement_date`,
    c.client_nom,
    co.contenant_nom  
FROM  
    `mouvement` m
INNER JOIN  
    (SELECT 
         MAX(mouvement_date) max_date, client_id, contenant_id
     FROM
         `mouvement`
     GROUP BY
         client_id, contenant_id) t ON t.client_id = m.client_id 
                                    AND m.contenant_id = t.contenant_id
                                    AND t.max_date = m.`mouvement_date`
INNER JOIN  
    `client` c ON c.client_id = m.client_id 
INNER JOIN  
    `contenant` co ON  co.contenant_id = m.contenant_id
ORDER BY 
    m.`mouvement_date`

关于mysql - 根据不同的条件从 SQL 查询中获取多个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57390978/

相关文章:

mysql - 构造一个既可以使用特定表也可以不使用特定表的查询

mysql - MYSQL 分隔符什么时候有用?

javascript - 如何将 Node js 中的错误对象正确转换为字符串?

mysql - 创建MySQL存储过程的问题

php - 使用 MySQL 多次插入或 1 个大查询?

php - 在 PHP 中运行查询以显示在表中

mysql - 为什么在未发出提交时插入记录?

php - 连续显示特定日期范围内的日期

sql - 如何获取sql server中的最新行

sql - DB2:将日期值转换为 varchar