繁体   English   中英

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

[英]Get several data from SQL query based on different conditions

我有以下代码:

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查询结果 我想得到几个这样的结果,例如:

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

sell_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`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM