2012-07-31 47 views
0

我wannt是這樣的:如何從工會填充特定列DATAS表設置

SELECT * FROM [dbo].[UNIONTABLE1] 
UNION 
SELECT * FROM [dbo].[UNIONTABLE2] 
AS RESULTUNION; 

DELETE FROM [dbo].[ResultTestTable]; 

INSERT INTO [dbo].[ResultTestTable] 
    ( 
    test2 
    ,test3 
    ,test4 
    ,test5 
    ,test6 
    ,test7 
    ) 
    VALUES 
    (
    RESULTUNION.LT_ALL_TAB_NAME 
    ,RESULTUNION.LT_SCH_KL_RED_GASDRUCK 
    ,RESULTUNION.LT_EINST_NOR_ZEIT + RESULTUNION.LT_EINST_NOR_AUSBLASZEIT 
    ,RESULTUNION.LT_EINST_SAN_ZEIT + RESULTUNION.LT_EINST_SAN_AUSBLASZEIT 
    ,RESULTUNION.LT_EINST_NOR_ZEIT_PCS + RESULTUNION.LT_EINST_NOR_AUSBLASZEIT_PCS 
    ,RESULTUNION.LT_EINST_SAN_ZEIT_PCS + RESULTUNION.LT_EINST_SAN_AUSBLASZEIT_PCS 
); 

我wannt與RESULTUNION表的所有行,但只與特定的列,以填補ResultTestTable RESULTUNION表。 此外我想添加RESULTUNION表的兩列數據並將其映射到ResultTestTable中的一列。 增加的值是浮動。

我正在使用Microsoft SQL Server Management Studio。

上面的語句不起作用,這是顯而易見的,但我不知道如何正確執行。 如果我執行上面的語句,我得到以下錯誤: 消息4104,級別16,狀態1,過程test_storedProcedure,第31行 多部分標識符「RESULTUNION.LT_ALL_TAB_NAME」無法綁定。

我假設我必須做一個for循環,但比我不知道多少行RESULTUNION表必須循環。

有沒有人有想法。 Thanx

回答

1

首先,絕對不要在你的SQL中使用「SELECT *」,總是指定列名。一旦考慮到這一點,就會更容易看到解決方案。這裏是:

INSERT INTO [dbo].[ResultTestTable] 
    (
    test2 
    ,test3 
    ,test4 
    ,test5 
    ,test6 
    ,test7 
    ) 
SELECT 
    LT_ALL_TAB_NAME 
    ,LT_SCH_KL_RED_GASDRUCK 
    ,LT_EINST_NOR_ZEIT + LT_EINST_NOR_AUSBLASZEIT 
    ,LT_EINST_SAN_ZEIT + LT_EINST_SAN_AUSBLASZEIT 
    ,LT_EINST_NOR_ZEIT_PCS + LT_EINST_NOR_AUSBLASZEIT_PCS 
    ,LT_EINST_SAN_ZEIT_PCS + LT_EINST_SAN_AUSBLASZEIT_PCS 
FROM [dbo].[UNIONTABLE1] 
UNION ALL -- This will keep duplicate rows. UNION, without ALL, removes duplicates 
SELECT 
    LT_ALL_TAB_NAME 
    ,LT_SCH_KL_RED_GASDRUCK 
    ,LT_EINST_NOR_ZEIT + LT_EINST_NOR_AUSBLASZEIT 
    ,LT_EINST_SAN_ZEIT + LT_EINST_SAN_AUSBLASZEIT 
    ,LT_EINST_NOR_ZEIT_PCS + LT_EINST_NOR_AUSBLASZEIT_PCS 
    ,LT_EINST_SAN_ZEIT_PCS + LT_EINST_SAN_AUSBLASZEIT_PCS 
ROM [dbo].[UNIONTABLE2] 

顯然,如果兩個表的列有不同的名稱,您將不得不相應地修改查詢。

+0

哦,聖地亞哥非常感謝你,你救了我的傍晚 – grimblegrumble 2012-07-31 16:38:21

+0

不客氣。而且,如果你接受答案,那麼更歡迎!或者你可以給我一個香腸,我也喜歡他們。 :) – Diego 2012-07-31 17:08:51