Sql server 如何将SQL查询捕获到表中

Sql server 如何将SQL查询捕获到表中,sql-server,Sql Server,我正在尝试将SQL查询结果捕获到表中。如果没有代码将查询捕获到表中,查询就可以正常工作,但我发现语法错误就在附近。任何帮助都将不胜感激 Select * Into #TempTable From (Select SUM ([Total Messages]) as WTMT , SUM ([Messages Below Threshold]) as [Weekly Messages Below Threshold], SUM ([A

我正在尝试将SQL查询结果捕获到表中。如果没有代码将查询捕获到表中,查询就可以正常工作,但我发现语法错误就在附近。任何帮助都将不胜感激

Select *
Into #TempTable
From    
    (Select 
        SUM ([Total Messages]) as WTMT ,
        SUM ([Messages Below Threshold]) as [Weekly Messages Below Threshold],
        SUM ([Average Time (Sec )]) as [Weekly Average Delivery Time],
        (SUM ([Total Messages])- SUM ([Messages below threshold]))
        As [Weekly Messages Above Threshold]
    from [Weekly Mail Delivery Times ByServer])

派生表需要别名:

Select * Into #TempTable From
 (Select SUM ([Total Messages]) as WTMT , SUM ([Messages Below Threshold]) as [Weekly Messages Below Threshold], SUM ([Average Time (Sec )]) as [Weekly Average Delivery Time], (SUM ([Total Messages])- SUM ([Messages below threshold])) As [Weekly Messages Above Threshold] from [Weekly Mail Delivery Times ByServer]) q

我建议在查询中添加别名:

从SELECT SUM[总消息数]中将*选择为可诱惑 作为WTMT, 将[低于阈值的邮件]合计为[低于阈值的每周邮件], 总和[平均时间秒]为[每周平均交付时间], 总和[总消息]-总和[低于阈值的消息]为[高于阈值的每周消息] 从[服务器每周邮件投递时间] AS t


其中任何一个都可以

Select  * 
Into    #TempTable 
From    (
        Select  SUM ([Total Messages]) as WTMT , 
                SUM ([Messages Below Threshold]) as [Weekly Messages Below Threshold], 
                SUM ([Average Time (Sec )]) as [Weekly Average Delivery Time], 
                (SUM ([Total Messages])- SUM ([Messages below threshold])) As [Weekly Messages Above Threshold] 
        from    [Weekly Mail Delivery Times ByServer]
        ) As X


你有没有试过把它粘贴到SSM中,并在多行上格式化,这样丢失的内容就变得明显了?参见Conrad Lotz的答案。您需要为子查询结果集提供别名。是的,如果不为结果集提供别名,则无法执行子查询。
Select  SUM ([Total Messages]) as WTMT , 
        SUM ([Messages Below Threshold]) as [Weekly Messages Below Threshold], 
        SUM ([Average Time (Sec )]) as [Weekly Average Delivery Time], 
        (SUM ([Total Messages])- SUM ([Messages below threshold])) As [Weekly Messages Above Threshold] 
Into    #TempTable 
from    [Weekly Mail Delivery Times ByServer]