0

一時テーブルへの 1 回の挿入で副選択を挿入しようとしています。問題は、1 つの挿入を使用したいということです。この挿入では、副選択を一時テーブルの 3 番目の列に挿入したいと考えています。最初の選択には 2 つのパラメーターしかないことを知っています。トリックは 3 番目です。1 つの挿入と 1 つのサブセレクトを使用して列 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')
4

2 に答える 2

0

これが私が代わりに解決した方法です。サブセレクトで1つの挿入を使用する場合は、この方法で行う必要があります。

    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' 
于 2013-10-01T09:30:43.167 に答える