sql对USERS的销售额进行SUM

问题描述 投票:0回答:1

我想做一个sql,我有2个表,一个是用户表,另一个是销售表,我的想法是能把销售最多的用户按日期做一个排名。

sql 卖家 用户

SELECT * 
FROM usuario 
WHERE usuario_tipo_id =3

根据日期和销售状态进行Sql销售

SELECT COUNT(*) 
FROM sale 
WHERE usuario_id=49 
  and venta_fecha between '12/05/2020' and '13/05/2020' 
  AND sale_estado =2 

有什么有效的方法可以加入这些查询,以得到按用户销售金额排序的列表呢?

usuario | sales
user1   | 10
user 6  |  8
user 2  | 3

谢谢

mysql sql mysql-5.7 sgl
1个回答
0
投票

你需要这样的东西

SELECT usuario.name usuario, SUM(sale.sales) total_sales
FROM usuario
JOIN sale ON usuario.id = sale.usuario_id /* or usuario.usuario_tipo_id? */
WHERE sale.venta_fecha between '12/05/2020' and '13/05/2020' 
  AND sale.sale_estado =2
GROUP BY usuario.name
ORDER BY total_sales DESC
LIMIT 3

0
投票

好吧,我做了一些假设......但它可能是沿着这样的路线,使用左内联接来连接两个表。这样可以确保连接的结果不会是NULL值。

SELECT 
  u.nome
  , SUM(s.order_total) AS total 
FROM 
  usuario u 
    LEFT INNER JOIN sale s 
      ON u.usuario_id = s.usuario_id 
WHERE 
  s.venta_fecha BETWEEN '12/05/2020' 
    AND '13/05/2020' 
GROUP BY 
  u.nome 
ORDER BY 
  SUM(s.order_total) DESC;
© www.soinside.com 2019 - 2024. All rights reserved.