在SQL中使用DISTINCT

时间:2013-12-02 18:06:23

标签: sql sql-server distinct adventureworks

在AdventureWorks2012数据库中,我必须使用列出具有Sales.SalesPerson和名称的所有Distinct产品的Sales.SalesOrderHeaderSales.SalesOrderDeatilProduction.ProductProductID表在领土5出售。

以下是我的回答。

SELECT DISTINCT
    sod.ProductID,
    p.Name 
FROM
    Sales.SalesPerson SP,
    Sales.SalesOrderHeader SOH,
    Sales.SalesOrderDetail SOD,
    Production.Product P 
WHERE
    SP.BusinessEntityID = soh.SalesOrderID AND
    soh.SalesOrderID = sod.SalesOrderID AND
    sod.SalesOrderID = p.ProductID

查询执行成功,但0行受到影响。我做错了什么?

2 个答案:

答案 0 :(得分:0)

sod.SalesOrderID = p.ProductID

我在猜这个,orderid = productid?可能是错误,也许你想要

sod.ProductID = p.ProductID

答案 1 :(得分:0)

SELECT DISTINCT
    SOD.ProductID,
    P.Name AS ProductName
FROM
    Sales.SalesPerson SP,
    Sales.SalesOrderHeader SOH,
    Sales.SalesOrderDetail SOD,
    Production.Product P 
WHERE
    SP.BusinessEntityID = SOH.BusinessEntityID AND
    SOH.SalesOrderID = SOD.SalesOrderID AND
    SOD.ProductID = P.ProductID AND
    SOH.TerritoryID = 5;