【发布时间】:2012-08-06 05:08:00
【问题描述】:
我有以下按预期工作的查询:
SELECT
SERVICE_HISTORY.ServiceMode, SERVICE_HISTORY.CreatedDate,
SERVICE_HISTORY.CreatedBy, SERVICE_HISTORY.Branch,
SERVICE_HISTORY.Comments
FROM
DEBA_US.dbo.SERVICE_HISTORY
JOIN
(SELECT MAX(SERVICE_HISTORY.CreatedDate) AS maxDate, CUSTOMER.AccNo
FROM DEBA_US.dbo.CUSTOMER
INNER JOIN (DEBA_US.dbo.SERVICE_HISTORY
INNER JOIN DEBA_US.dbo.CAR ON SERVICE_HISTORY.ROW_PK = CAR.ROW_PK) ON CUSTOMER.ROW_PK = CAR.ROW_PK
WHERE
CUSTOMER.AccNo LIKE 'CUS-1234'
AND CAR.DateSubmitted IS NULL
GROUP BY
CUSTOMER.AccNo) AS testQuery ON testQuery.maxDate = SERVICE_HISTORY.CreatedDate
查询是为我提供给定客户的最新(最大)服务历史日期。
当我在 SQL Server 中执行查询时,它工作得非常好,但是当我将相同的查询放入 EXCEL 2010 (Microsoft Query) 时,它给了我错误:
没有为“testQuery”的第 1 列指定列名
列名“maxDate”无效
无法准备声明
我无法修复查询以传递错误。有人可以告诉我为什么 Excel 不能处理上述查询吗?谢谢
【问题讨论】:
-
我通常发现 MS 查询非常有限,因此我通常会通过创建视图来简化我提供给 MS Query 的内容。如果我想要做的对于视图来说太复杂了,我将创建一个返回数组的 VBA UDF。
标签: sql sql-server excel excel-2010