Sql 如何使用派生表

Sql 如何使用派生表,sql,Sql,我试图理解一个派生表,我有点想法,但仍然在搞砸它。我做了我认为不对的代码。我不知道我是输入错误还是遗漏了什么。我正在使用的表是一个与客户表不同的公司名称,在客户表中,订单的折扣高于。2.我一直在查看它,可能有些名称是向后看的,或者其他什么 SELECT DISTINCT c.CompanyName From Customers As c Join (Select OrderID From Orders as o Join [Order Details] as od ON c.Customers

我试图理解一个派生表,我有点想法,但仍然在搞砸它。我做了我认为不对的代码。我不知道我是输入错误还是遗漏了什么。我正在使用的表是一个与客户表不同的公司名称,在客户表中,订单的折扣高于。2.我一直在查看它,可能有些名称是向后看的,或者其他什么

SELECT DISTINCT c.CompanyName
From Customers As c
Join
(Select OrderID
From Orders as o
Join [Order Details] as od
ON c.Customers = od.OrderID
Where od.OrderID = '<.2'
最后一部分不太适用于。2


如何在northwind数据库中设置列单击表,然后向下查看dbo.Order详细信息,然后单击列,您将找到OrderId、ProductID、单价、数量、Disounts。然后您将拥有customers表,其中包含CustomerID、CompanyName、ContactName、ContactTitle、地址、城市、地区、邮政编码、国家、电话和传真。现在,如果您进入订单表,您将有OrderID、CustomerID、EmployeeID、OrderDate、RequiredDate、ShippedDate、ShipVia、Frieght、ShipName、ShipAddress、ShipCity、ShipRegion、ShipPostalCode、ShipCountry。

类似的内容应该可以做到这一点

SELECT c.CompanyName
    FROM Customers c
    WHERE EXISTS(SELECT NULL
                     FROM Orders o
                         INNER JOIN [Order Details] od
                             ON o.OrderID = od.OrderID
                                 AND od.Discount > .2
                     WHERE o.CustomerID = c.CustomerID)

我怀疑折扣值是否存储在od.OrderID列中。该值是否有另一列?是的,在订单详细信息中SQL方言和功能因供应商而异。您应该更新您的问题,以表明您正在使用哪一个。@st1984:并且该列的名称将是…?如果您转到dbo.Order Detail,并在其下查看,您将看到折扣