这是一个在我正在学习的书中没有解决的练习。 目标是找出每月有最高销售数量的卖家, 在有注册信息的所有月份中。问题是我不知道如何将元组分成一个月的时间段。我如何解决这个查询在SQL oracle?
第一个表是:
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月,系统日期),而另一个卖家去年10月售出500件,则结果将是第二个卖家。这是我不知道该怎么做的。
谢谢^^
你能分享一些样本数据和你试图得到的结果吗? – Mureinik
@Mureinik我不知道你的意思,我试图得到的结果是声明要求(?)。 问题是,我不知道如何将每个销售分为一个月的时间段,通过销售者将其分组,并获得自有记录以来每个月销售更多的销售员。 –
Mureinik问的是“输入数据的结构是什么”以及“你期望的输出格式是什么”。例如,对于输入数据 - 你有什么?有销售员专栏,交易日期和销售金额的表格?日期是在任何月份的任何日期?或者是按月份汇总的输入数据?这些是我们无法看到您的样本数据而“猜测”的事情,或者是您非常详尽的解释。 – mathguy