这是我正在学习的书中没有解决的练习。 目标是找到每月销售额最高的卖家, 在有注册信息的所有月份。问题是我不知道如何将元组分成一个月的时间。
第一张表是:
Table Sellers
Id_seller
Name_Product
另一个是:
Table Product
Name_Product
View_datetime
Budget
我做了什么?
我提出了这个问题:
SELECT id_seller FROM(SELECT id_seller, COUNT(id_seller)
FROM SELLERS INNER JOIN PRODUCT
ON SELLERS.name_product = PRODUCT.name_product
GROUP BY id_seller HAVING COUNT(id_seller)>= 1
ORDER BY 2 DESC)
WHERE ROWNUM = 1;
查询返回给我的销售商大部分销售已经完成,但不是"因为有记录"正如声明所要求的那样。有任何想法吗?我迷路了...
这个想法是将本月每个销售员(sysdate)的总销售额与两个月前的一个月前的销售额进行比较......只要有较旧的记录。并从每个卖家获得最大值。然后您使用上一个列表中的更多销售打印卖家。如果卖家本月销售400件产品(4月份,sysdate),但去年10月卖出的另一件卖家500件,结果将是第二卖家。这就是我不知道该怎么做。
谢谢^^
答案 0 :(得分:0)
您可以尝试此查询
nvl
答案 1 :(得分:0)
有几点要做......
sellers
最好称为sales
,对吗? having count... >= 1
是无操作。如果根本没有行,则Count只能为0,在这种情况下,group-by输出中不会有行。你可以在这里留下这个数字。 group by
即可。即group by id_seller, To_date(view_datetime,'YYYYMM')
。