SQL。这个涉及从不同的表中乘以两列

时间:2016-03-25 21:34:11

标签: sql ms-access

首先,我必须找到每个销售员ID,销售人员姓名(第一个和最后一个),他们的SIN编号,销售数量,单价和销售总额(我必须将此字段标记为TotalSales)产品

以下是数据:

enter image description here

以下是我到目前为止所做的事情,让我知道是不是错了:

SELECT 
    s.SalesmanID, s.FirstName, s.LastName, s.SIN, 
    ps.QuantitySold, ps.UnitSalesPrice, 
    (this is where I’m stuck, I must have to create a new column called TotalSales here)

如果你能提供帮助,请告诉我!

1 个答案:

答案 0 :(得分:2)

SELECT s.SalesmanID, max(s.FirstName) first_name, max(s.LastName) last_name, max(s.SIN) sin, sum(ps.QuantitySold) sold_qty, sum(ps.quantitysold * ps.UnitSalesPrice) total_sales_AMT from salesmen s join productsales PS on s.salesmanid = PS.sellerid group by s.salesmanid

您需要与组进行联接,以便在销售员级别总计销售数量和销售价格。见上面的代码。

加入和分组的原因是因为我假设销售人员和产品之间存在一对多的关系。

如果您需要在销售人员和产品级别执行此操作,则需要扩展分组。见下文。

SELECT s.SalesmanID, ps.productid, max(s.FirstName) first_name, max(s.LastName) last_name, max(s.SIN) sin, sum(ps.QuantitySold) sold_qty, sum(ps.quantitysold * ps.UnitSalesPrice) total_sales_AMT from salesmen s join productsales PS on s.salesmanid = PS.sellerid group by s.salesmanid, ps.productid

还有一个注意事项是,如果您想要获得所有销售人员而不仅仅是那些有销售的销售人员,请用左外连接替换连接