0

我正在尝试创建一个 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

格雷西亚斯

4

2 回答 2

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
于 2020-05-13T08:13:55.060 回答
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;
于 2020-05-13T08:15:29.290 回答