2016-08-03 63 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语句中使用的变量。