2013-12-19 276 views
-1

我对SQL的知识非常少,但会尽我所能解释问题。使用SELECT INTO语句的SQL查询

我有5个DB表格说MS SQL Server中的TAB1,TAB2,TAB3,TAB4,TAB5。我正在研究一个中间件工具来集成到一个数据库系统。为此,我需要从DB系统中检索表格。

TAB1: MAT_ID, A1, A2, A3, A4 

TAB2: MAT_ID, B1, B2 

TAB3: MAT_ID, C1, C2, C3, C4, c5 

TAB4: MAT_ID, D1, D2, D3, D4, D5, D6, D7 

TAB5: MAT_ID, E1, E2, E3 

我得到的结构应如下

MAT_ID,A1,A2,A3,A4 
MAT_ID,B1,B2 
MAT_ID,C1,C2,C3,C4,c5 
MAT_ID, D1, D2, D3, D4, D5, D6, D7 
MAT_ID, E1, E2, E3 

我的意思是所有的行显示应该得到追加。每个表格中的列数将有所不同。另外,我需要对上述内容进行如下额外要求。

MAT_ID将有像AA值,BB,CC,DD,EE等..

所以,当我跑我的SQL查询的情况下,我需要与个体MAT_ID行应该得到附后如下。

AA,A1,A2,A3,A4 
AA,B1,B2 
AA,C1,C2,C3,C4,c5 

MAT_ID的值应该是动态的,我不能在查询中提及它。

我检查了InnerJoin,但它希望按预期工作。

我可以在确定数据库表中不同MAT_ID字段时添加一个额外字段。另外让我知道你是否可以提供其他选项。 SELECT INTO也是我正在寻找的选项之一。

+2

你想要一个表中的所有五个表的内容?那么你想要使用所有的联合。你的列的数据类型是什么?你试过什么了? –

回答

0

试试这个,不知道这是你需要的。只是猜测根据您的问题

select MAT_ID, A1, A2, A3, A4, null as a5, null as a6, null as a7 from TAB1 
union all 
select MAT_ID, B1, B2, null, null, null,  null,  null  from TAB2 
union all 
select MAT_ID, C1, C2, C3, C4, c5,   null,  null  from TAB3 
union all 
select MAT_ID, D1, D2, D3, D4, D5,   D6,   D7   from TAB4 
union all 
select MAT_ID, E1, E2, E3, null, null,  null,  null  from TAB5 
+0

嗨我试着与TAB1和TAB2上面,但我的结果像下面。 'Row1:TAB1和Row2的所有条目:TAB2的所有值,但字段名称为TAB1' – user3115214

+0

是的。每列只能有一个字段名称。你可以给他们个人名字,但不是每行。请提供一个结果应该是什么样的例子,甚至一个excel的截图也会有帮助。只需编辑您的问题以包含更多信息。 –

+0

我想添加一个截图,但不幸的是我没有足够的点来添加图像。 – user3115214