【发布时间】:2016-06-28 04:53:12
【问题描述】:
我的Sales.Customer 表包括以下列:
- 客户 ID(整数)
- 名字 (nvarchar(50))
- 姓氏 (nvarchar(50))
我的Sales.SalesOrder 表包括以下列:
- SalesOrderNumber(整数)
- OrderDate(日期)
- 客户 ID(整数)
- 金额(金钱)
一些客户在过去几年中下了多个订单。我编写了以下查询来检索每个客户下订单的最后日期:
SELECT c.CustomerID, c.FirstName, c.LastName,
-- correlated subquery goes here
AS LastOrderDate
FROM Sales.Customer AS c;
为什么我的子查询没有完成我的实际查询?我错过了什么还是应该有所不同?
(SELECT MAX(o.OrderDate)
FROM Sales.SalesOrder AS o
WHERE o.CustomerID = c.CustomerID)
我考虑过我的解决方案是否过于复杂,所以也许这应该可行?
(SELECT MAX(c.OrderDate)
FROM Sales.Customer AS c)
【问题讨论】:
-
这是哪个 -
mysql或sql-server? -
抱歉,准确的说是sql-server,trans-sql,我只是觉得把mysql的标签加进去会吸引更多的用户看到。我会立即删除它,因为它肯定会影响声誉。
-
好的。我不明白“为什么我的子查询没有完成我的实际查询?”是什么意思——你的第一个子查询应该可以工作(不是你的第二个)。
-
请发布您需要帮助的确切查询;以及一些示例数据和所需的结果。
-
应该可以工作.. 你应该加入 2 个表并使用
group by
标签: sql-server tsql