Mysql 真实世界总销售额SQL查询
我对SQL相当陌生,解决问题有困难 “按单位销售最高的五种产品中,每种产品至少销售一个单位的销售人员的所有产品的总销售额是多少?确保查询按降序返回总销售额。只考虑在@目标日期参数之前的六个月内发生的销售。 数据库中有3个表。 销售员销售员姓名 SalesOrderHeader SalesOrderID、OrderDate、ShipDate SalesOrderDetail SalesOrderID、SalesOrderDetailID、OrderQty、ProductID、单价 到目前为止我就在这里。我需要将我所拥有的汇编成一份声明,并进行必要的修改。请帮忙 要按单位捕获前5名最高销售额,应使用以下语法:Mysql 真实世界总销售额SQL查询,mysql,sql,join,Mysql,Sql,Join,我对SQL相当陌生,解决问题有困难 “按单位销售最高的五种产品中,每种产品至少销售一个单位的销售人员的所有产品的总销售额是多少?确保查询按降序返回总销售额。只考虑在@目标日期参数之前的六个月内发生的销售。 数据库中有3个表。 销售员销售员姓名 SalesOrderHeader SalesOrderID、OrderDate、ShipDate SalesOrderDetail SalesOrderID、SalesOrderDetailID、OrderQty、ProductID、单价 到目前为止我就在
SELECT
ProductID,
SUM(Orderqty*Unitprice)
FROM SalesOrderDetail
GROUP BY ProductID
WHERE Orderqty >=1
AND COUNT(productID) =5
ORDER BY SUM(Orderqty*Unitprice) DESC
LIMIT 5;
对于target_date参数,我想应该是这样的
SELECT
SalespersonID AS ‘Sales Representative’,
SalesYTD AS ‘Total Sales’, target_date
FROM Salesperson
WHERE target_date BETWEEN ‘01-DEC-13’ AND ’01-May-14’;
对于前五名的销售额,我宁愿建议稍微简化一下 选择productid、sumorderqty*单价作为销售 来自salesorderdetail 按产品ID分组 按销售说明订购 限制5 在@target_date之前的六个月内 其中orderdate介于日期之间_sub@target_date,间隔6个月和@target_日期 假设有一个FK SalesOrderDetailsSalesorSoId,那么您就可以将表和前五名销售人员作为 选择p* 来自销售人员p 在h.salersionId=p.salersionId上加入salesorderheader h 在d.salesorderid=h.salesorderid上加入salesorderdetail d 将选择productid、sumorderqty*单价加入销售 来自salesorderdetail 按产品ID分组 按销售说明订购 t5.productid=d.productid上的限制5 t5 其中h.orderdate介于日期之间_sub@target_date,间隔6个月和@target_日期 由p.salesytd desc订购
如果表描述完整,则SalesOrderDetail与SalesPerson之间没有连接。假设它通过SalesPersonID的FK进行连接。对不起,忘了提那件事了。我把表格缩小到必要的字段。