2009-04-23 81 views
0

我有以下情況。從子記錄生成父記錄

林的形式獲得來自外部系統的數據

UserId Group Value 
1  Abc ..... 
1  Abc ..... 
1  Bcd ..... 
2  Abc ..... 

我需要這個數據按摩到我的架構,即

Parent Table 
ID UserID Group Name 
1  1   Abc  User 1 - Abc data 
2  1   Bcd  User 1 - Bcd data 
3  2   Abc  User 2 - Abc data 

Child Table 
ParentID Value 
1   ..... 
1   ..... 
2   ..... 
3   ..... 

所以有孩子的數據之間的1對1和來自外部系統的數據。 問題是,我開始與孩子數據,並需要編寫一個可以創建基於用戶名和組的不同組合父記錄

+0

請始終明確指出所使用的語言/技術。我收集你正在使用SQL Server,所以將它添加到標籤列表中會很好。或者在問題中提及它。 – 2009-04-23 21:55:38

回答

1
insert parent (userId, group, name) 
select distinct userId, group, concat("user ", userId, " - ", group, " data") 
from input_data; 

(其中它已經自動遞增的ID)

那麼:

insert child (parentId, value) 
select p.parentId, d.value 
from parent p 
inner join input_data d on p.user_id = d.user_id and p.group = d.group; 
0

需要編寫一個可以創建基於父記錄查詢查詢上和用戶ID的組合不同組

insert into parent(UserID, Group, Name) 
select distinct 
UserID, 
Group, UserID, 
'User ' || UserID || ' - ' || Group || ' data' 
from raw_input_data;