我想做一个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
谢谢
你需要这样的东西
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
好吧,我做了一些假设......但它可能是沿着这样的路线,使用左内联接来连接两个表。这样可以确保连接的结果不会是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;