【问题标题】:INSERT results from query into TEMP TABLE [closed]将查询结果插入到 TEMP TABLE [关闭]
【发布时间】:2014-07-18 02:52:15
【问题描述】:

原始查询:

select DISTINCT  a.UniversalMemberID, a.Name, a.DOB, a.[First Service Date], 
(select count(b.UniversalMemberID)
      from WCV b
      where b.[First Service Date] <= a.[First Service Date] 
      and a.UniversalMemberID = b.UniversalMemberID) 
      AS  Visit_CNT
from WCV as a
ORDER by a.UniversalMemberID, a.[First Service Date]

需要将上述查询的结果插入到临时表#TEMP

不断返回此错误:

关键字选择附近的语法不正确

【问题讨论】:

  • 显示你到目前为止所尝试的...
  • 你能用插入语句发布你的实际查询吗?
  • 首先您必须编写正确的SELECT 查询。
  • 从子查询内部引用别名 a 看起来有问题。
  • 如果您的Select 语句按预期工作,您需要做的就是在Select 之前添加一个Insert #Temp (cols...)。但似乎还有其他问题。

标签: sql sql-server insert temp insert-into


【解决方案1】:

当我遇到查询问题时,我总是尝试拆分它,看看是否有问题,如果您尝试将查询分开,从SELECT * 之类的通用查询到更多过滤查询,这也可能会有所帮助。

SELECT
DISTINCT a.UniversalMemberID, a.Name, a.DOB, a.[First Service Date], 
(
SELECT count(b.UniversalMemberID) 
FROM 
WCV AS b 
WHERE 
b.[First Service Date] <= a.[First Service Date] and a.UniversalMemberID = b.UniversalMemberID
) AS Visit_CNT 
FROM 
WCV as a 
ORDER by a.UniversalMemberID, a.[First Service Date]

我将尝试先从括号中进行查询,然后开始添加内容。希望能帮助到你。

给我们反馈。

【讨论】:

  • 这无关紧要,因为我的查询运行完美。我只需要将结果插入表格!它是如此简单,但不断收到此错误
【解决方案2】:

This SqlFiddle 似乎工作正常...这是你想要做的吗?

SELECT DISTINCT  a.UniversalMemberID, a.Name, a.DOB, a.[First Service Date],
(SELECT count(b.UniversalMemberID)
      FROM WCV b
      WHERE b.[First Service Date] <= a.[First Service Date]
      AND a.UniversalMemberID = b.UniversalMemberID)
      AS  Visit_CNT
into #MyTempTable
FROM WCV AS a
ORDER BY a.UniversalMemberID, a.[First Service Date]


Select * from #MyTempTable

【讨论】:

  • 返回此错误“关键字 'into' 附近的语法不正确。”
  • 您使用的是什么版本的 SQL? SqlFiddle 链接工作正常,它是 2012 年
  • 成功了!!!谢谢!!!!
  • 很高兴它成功了,你需要改变什么?
  • 我只是以完全相同的方式运行它...我不小心在我的选择之前留下了 insert into...这就是为什么我在“next to into”时收到那个错误
猜你喜欢
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
相关资源
最近更新 更多