2011-07-18 3 views
0

一意のID_COST_CENTRE、NM_ROSTERごとに次の表に新しいTaskを挿入し、No_Order_Numberの値をMAX(No_Order_Number)+1に設定します。シーケンスなしでマルチキーテーブルに挿入する方法

私はNM_TASK、TY_TASK & ID_TASK_TYPEが、私は以下の結果を取得するには、次のANGにタスクALを追加したい例えば

INSERT INTO [Microster].[dbo].[MIC_CC_Task_Edit] 
    ([ID_COST_CENTRE],[NM_ROSTER],[NM_TASK],[No_Order_Number],[TY_TASK],[ID_TASK_TYPE]) 
    VALUES 
    (<ID_COST_CENTRE, char(15),> 
    ,<NM_ROSTER, char(25),> 
    ,<NM_TASK, char(15),> 
    ,<No_Order_Number, smallint,> 
    ,<TY_TASK, smallint,> 
    ,<ID_TASK_TYPE, char(15),>) 

値を設定することができます。

挿入後
0006 0006 ADMIN    CLERICAL ASSIST 1 1 Worked Task 
0006 0006 ADMIN   COORD  2 1 Worked Task 
0006 0006 ADMIN   MRT    3 1 Worked Task 
0006 0006 ADMIN   ORIENT  4 1 Worked Task 
0006 0006 MRT'S   CLERICAL ASSIST 1 1 Worked Task 
0006 0006 MRT'S   COORD  2 1 Worked Task 
0006 0006 MRT'S   MRT    3 1 Worked Task 
0006 0006 SONOGRAPHER'S  CLERICAL ASSIST 1 1 Worked Task 
0006 0006 SONOGRAPHER'S  COORD  2 1 Worked Task 
0006 0006 SONOGRAPHER'S  MRT    3 1 Worked Task 
0006 0006 SONOGRAPHER'S  ORIENT  4 1 Worked Task 
0006 0006 SONOGRAPHER'S  SONOGRAPHER  5 1 Worked Task 

0006 0006 ADMIN   CLERICAL ASSIST 1 1 Worked Task 
0006 0006 ADMIN   COORD  2 1 Worked Task 
0006 0006 ADMIN   MRT    3 1 Worked Task 
0006 0006 ADMIN   ORIENT  4 1 Worked Task 
0006 0006 ADMIN   AL   5 3 AL 
0006 0006 MRT'S   CLERICAL ASSIST 1 1 Worked Task 
0006 0006 MRT'S   COORD  2 1 Worked Task 
0006 0006 MRT'S   MRT    3 1 Worked Task 
0006 0006 MRT'S   AL   4 3 AL 
0006 0006 SONOGRAPHER'S  CLERICAL ASSIST 1 1 Worked Task 
0006 0006 SONOGRAPHER'S  COORD  2 1 Worked Task 
0006 0006 SONOGRAPHER'S  MRT    3 1 Worked Task 
0006 0006 SONOGRAPHER'S  ORIENT  4 1 Worked Task 
0006 0006 SONOGRAPHER'S  SONOGRAPHER  5 1 Worked Task 
0006 0006 SONOGRAPHER'S  AL  6 3 AL 

答えて

0

INSERT INTOせずに最初にそれを試してみてください。

INSERT INTO [Microster].[dbo].[MIC_CC_Task_Edit] 
    ([ID_COST_CENTRE] 
    , [NM_ROSTER] 
    , [NM_TASK] 
    , [No_Order_Number] 
    , [TY_TASK] 
    , [ID_TASK_TYPE] 
    ) 
    SELECT 
     ID_COST_CENTRE 
    , NM_ROSTER 
    , 'AL' 
    , MAX(No_Order_Number) + 1 
    , 3 
    , 'AL' 
    FROM 
     [Microster].[dbo].[MIC_CC_Task_Edit] 
    GROUP BY 
     ID_COST_CENTRE 
    , NM_ROSTER 
関連する問題