【发布时间】:2013-04-26 12:28:39
【问题描述】:
图表:
加入查询:
SELECT DISTINCT c.CustomerID, c.FirstName , sh.DueDate, p.ProductID,p.ListPrice
FROM SalesLT.Customer c
INNER JOIN SalesLT.SalesOrderHeader sh
ON c.CustomerID = sh.CustomerID
INNER JOIN SalesLT.SalesOrderDetail sd
ON sh.SalesOrderID = sd.SalesOrderID
INNER JOIN SalesLT.Product p
ON sd.ProductID = p.ProductID
Order BY ListPrice Desc
输出:
期望的结果:
对于所需的输出:
- 现有查询可以添加什么?
- 执行此查询的优化方式是什么?
- 子查询和连接的时间和空间复杂度是多少?
【问题讨论】:
-
你是否使用过 Over Clause 和 Aggregate 函数?如果没有,您可能想查看它here
-
您能解释一下为什么期望结果表中的产品 ID 具有这些值吗? IE。为什么是 794、795、793 和 956?
-
@Serg 感谢您的指出。现已编辑!!
-
始终发布 SQL DDL (CREATE TABLE) 语句和示例 INSERT 语句。 看起来 Christopher想要 5 种产品,每种产品的标价相同。在输出中只显示 一个 背后的逻辑是什么?此外,根据经验,围绕主键构建麻烦的查询,直到您获得正确的数据。即包括SalesOrderID等
-
@Mike Aye Sr 感谢您的建议。我只是想弄清楚我的概念。它的示例 db Advenure Salesdb by msdn。
标签: sql sql-server-2008 join sql-server-2008-r2 subquery