查询7号员工卖给美国人的美国生产的商品的平均单价,按照不同产品分组。Northwind数据库表结构,引用一下http://blog.csdn.net/nihaomayu/archive/2010/12/24/6095961.aspx谢谢帮忙~

解决方案 »

  1.   

    select avg(单价) from 商品表 where 产品id in(select 产品id from 销售 where 员工id=7)
    group by 产品分组id
      

  2.   

    不对吧,customer限制为'USA',ShipCountry也限制为'USA',而且没有销售这个表吧。
    不过,还是要谢谢帮忙~
      

  3.   

    楼上的,有什么问题应该跟Admini沟通的,不骂人的……也可能是点什么误会呢
      

  4.   

    SELECT P.PRODUCTID,P.CATEGORYID,AVG(od.UNITPRICE) '平均单价' FROM ORDERS  o
    INNER JOIN [Order Details] od on o.OrderID =od.OrderID
    INNER JOIN [Customers] c on c.CustomerID =o.CustomerID
    INNER JOIN  PRODUCTS P ON P.PRODUCTID =od.PRODUCTID
    INNER JOIN SUPPLIERS S ON S.SUPPLIERID =P.SUPPLIERID
    WHERE O.EmployeeID=7 AND c.Country ='USA'
    AND S.COUNTRY='USA'
    GROUP BY P.CATEGORYID,P.PRODUCTID
    LZ 试试看。
      

  5.   

    谢谢~不过Orders表和Products表不能直接连接,要通过[Order Details]表建立连接
    我用全部用where连接可以了,不知道还有什么好方法不?SELECT Products.PRODUCTID,Products.CATEGORYID,AVG(Products.Unitprice) '平均单价' 
    FROM [Order Details],Orders,Customers,Suppliers,Products
    WHERE  [Order Details].OrderID =Orders.OrderID and
    Customers.CustomerID =Orders.CustomerID and
    Suppliers.SUPPLIERID =Products.SUPPLIERID and
    products.productID=[Order Details].ProductID and
    [Order Details].orderID=Orders.OrderID and
    Orders.EmployeeID=7 AND 
    Customers.Country ='USA'AND
    Suppliers.COUNTRY='USA' 
    GROUP BY Products.CATEGORYID,Products.PRODUCTID
      

  6.   

    用卡迪尔积加where条件已经是一个不错的方法另外,也可以使用join的方法