繁体   English   中英

在插入到临时表中使用subselect

[英]Use subselect in insert to temp-table

我试图在一个插入到一个临时表中插入一个子选择。 我要使用一个插入,在此插入中,我要将子选择插入到临时表的第三列。 我知道我在第一个选择中只有2个参数,技巧是第三个。 如何通过使用1个插入和1个subselect进入第3列。 我收到错误消息

Msg 120, Level 15, State 1, Procedure Stored_Procedure, 
Line 24 The select list for the INSERT statement 
contains fewer items than the insert list. The         
number of SELECT values must match the number of INSERT columns.

这是我的代码。

insert into #Temp (Col01,Col02,Col03)
select X, Y from Table
where Y = CONVERT(varchar,Dateadd(DD,-0,GETDATE()),112)
and Z = '8:00' (Select X from Table 
where Datum = CONVERT(varchar,Dateadd(DD,-0,GETDATE()),112)
and Z = '17:00')

参数数量与值数量不匹配

插入#Temp(Col01,Col02,Col03)-参数3选择X,Y-值2

  insert into #Temp (Col01,Col02,Col03)
  select X, Y , Z from Table
  where Y = CONVERT(varchar,Dateadd(DD,-0,GETDATE()),112)
  and Z = '8:00' (Select X from Table 
  where Datum = CONVERT(varchar,Dateadd(DD,-0,GETDATE()),112)
 and Z = '17:00')

这就是我解决的方法..如果您想在subselect中使用1个insert,则应采用这种方式。

    insert into #ExcelPrint (Col01,Col02,Col03)
    select 
    Z,
    X as X_8, 
    (Select Kl_17.X from Table as Kl_17
    where Kl_17.Y = CONVERT(varchar,Dateadd(DD,-0,GETDATE()),112)
    and Kl_17.X = '17:00' 
    and Kl_17.Z = Table.Z) 
    as X_17
    from Table
    where Datum = CONVERT(varchar,Dateadd(DD,-0,GETDATE()),112)
    and Z = '8:00' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM