2009-04-23 80 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;