如何将多个Insert Into Select语句的结果放入一行

时间:2015-03-29 15:33:56

标签: sql-server-2012

我看过很多类似的问题,但似乎没有一个答案适用于我想要做的事情,所以这里有:

我有一个数据分布在4行的表。这些行中的某些值需要填充另一个表,所有表都在一行中,映射到特定列(这样可以使PLC获取它)。

我创建了以下查询,正如您所期望的那样,我会以多行为单位输出(但实际上,当我一次执行超过2个部分时,它似乎并不起作用)。

我如何将这些合并到一行?我和UNION一起去了,看看嵌套查询但是无法解决问题。感激不尽。

--////////
--To change format so one row contains all recipe data, 

INSERT INTO dbo.Rep_Criteria (FILE_NAME, BAC, Rev, Tol_Lo1, Tol_Hi1,  Eng_Tol1, Min, Max, Min TCs)
SELECT File_Name, BAC, Rev, Low, High, Eng_Tol, Min, Max,   Min_TC
FROM dbo.Recipe
WHERE ID = 1 ;

INSERT INTO dbo.Rep_Criteria (Tol_Lo2, Tol_Hi2, Eng_Tol2)
SELECT Low, High, Eng_Tol
FROM dbo.Recipe
WHERE ID = 2 ;

INSERT INTO dbo.Rep_Criteria (Tol_Lo3, Tol_Hi3, Eng_Tol3)
SELECT Low, High, Eng_Tol
FROM dbo.Recipe
WHERE ID = 3 ;

INSERT INTO dbo.Rep_Criteria (Tol_Lo4, Tol_Hi4, Eng_Tol4)
SELECT Low, High, Eng_Tol
FROM dbo.Recipe
WHERE ID = 4 ;
--////////

这可能有所帮助,虽然格式搞砸了:

Table 1: (Input)
File_Name   BAC Rev Low High    Eng_Tol Min Max Min_TC
Zeppelin    5636    F   0   6   4.0 1550    1725    1
Zeppelin    0   0   6   15  5.0 0   0   0
Zeppelin    0   0   15  100 6.0 0   0   0
Zeppelin    0   0   100 600 15.0    0   0   0
Table 2: (Output)
File_Name     -      BAC -    Rev -     Tol_Lo1 -       Tol_Lo2 -     Tol_Lo3  -       Tol_Lo4 -        Tol_Hi1 -         Tol_Hi2 -        Tol_Hi3 - -------
Zeppelin             5636    F              0                         6                      15                       100    
 --------  
Tol_Hi4 -        Eng_Tol1 -        Eng_Tol2 -         Eng_Tol3 -         Eng_Tol4  -        Min  -          Max  -          Min# T/C's
600                  4.0                        5.0                        6.0                         15.0                     1550           1725            1

0 个答案:

没有答案