2016-08-03 91 views
0

我正在尋找某人指向正確的方向。甚至不知道如何問這個。我用我所使用的語言可以找到的所有內容都是關於組合來自不同表格的結果。SQL Server:將多個選擇結果插入單行

我有一個表,我需要多個選擇結果進入另一個表中的單個行。所以我需要從幾個select/as/where查詢中插入一個新行,作爲一個結果行。

在一個真正的基本意義上,我需要這個,但10+結果到一個日期/時間參考10 +列行。

Insert into [table2].[namealias1] 
    Select [number] as namealias1 
    From [db].[table] 
    Where [name] = 'name1' 

表1(來源)

[NAME] [NUMBER] 

表2(目的地)

DATESTAMP NameAlias1 NameAlias2 

它已經很長一段時間,因爲我已經做了所有的SQL和我期待的一些建議和推向正確的方向。即使只是一些暗示最好的方式來攻擊這一點。這是在SQL Server 2012上。

在此先感謝您的幫助。

+0

什麼應該是在單行?每個數字一列?如果查詢返回100行,您希望單行中有100列嗎? – artm

+0

先將所有東西合併成一張表,然後用你的方法來存儲 –

+0

我在想我需要一個CTE或臨時表。 – cautrey

回答

0

也許CTE可以幫助您解決問題。你需要像這樣(僞代碼)

;with cte1 as 
(
    select col1, col2, ... ,colN 
    from table1 
    where conditions_for_table1 
), 
cte2 as 
(
    select col1, col2,... colK 
    from table2 
    where conditions_for_table2 
), 
...... 
...... 

insert into final_table(talbe columns here) 
select c1.col1,c2.col3, ... cM.colK 
from cte1 c1 
left join /*inner join*/ cte2 c2 on c1.joining_column = c2.joinint_column and ... 
..... 
left join cteM cM /*inner join*/ on ... 
+0

昨天我和CTE一起工作,但是它並沒有包含多個條件。我需要按名稱選擇多行,並將每個選定行的值返回到表2中的單個行。 – cautrey

+0

什麼是單行?也許你應該繼續彙總你從CTE獲得的數據。 –

+0

那麼這就像將變量分配給所選數據一樣? – cautrey

0

蠻力方法:

我宣佈每個select語句結果的變量,在INSERT語句中使用的變量。