【发布时间】:2015-03-12 12:10:24
【问题描述】:
我有一个通过 MS Query 连接到 Excel 的 SQL 查询,其中包括一个临时表。
代码:
CREATE TABLE #PV (ProductID varchar(255), Price int);
INSERT INTO #PV(ProductID, Price)
SELECT DISTINCT
PLR.ProductID, MAX(PLR.normal_price)
FROM
dbo.t_price_lists_r AS PLR
WHERE
PLR.price_list = 1115
GROUP BY
PLR.ProductID
SELECT P.ProductID, P.Price
FROM #PV AS P
BEGIN DROP TABLE #PV END
代码在 SSMS 中运行良好并返回正确的结果,但在 Excel/MS Query 中运行时出现三个明显的错误,如下所示:
Invalid column name 'ProductId'Deferred prepare could not be completedStatement(s) could not be prepared
我通常每天都通过 Excel 运行 SQL 查询而不会发生意外。
非常感谢!
【问题讨论】:
-
好的,我无法在我的机器上轻松复制您的示例,但首先我会尝试在所有标识符(表、列等)中添加括号以防万一。然后,如果这不起作用,则将其分解。首先使用一列运行 select 语句。然后添加 where 子句,然后添加 group 子句和其他列。然后插入,然后从 temp 中选择。分解它并不断添加东西,直到它破坏,这应该有助于查明您的问题
-
谢谢斯蒂芬,但我已经尝试过了,问题仍然存在。
-
你试过摆脱“DISTINCT”吗?
标签: excel tsql temp-tables ms-query