2009-04-23 5 views
0

J'ai la situation suivante.Générer l'enregistrement parent à partir des enregistrements enfant

Im obtenir des données à partir d'un système externe sous la forme

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

Je dois masser ces données dans mon schéma, à savoir

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   ..... 

Donc, il y a un 1 à 1 entre les données de l'enfant et les données du système externe. Le problème est que je commence avec les données de l'enfant et ont besoin d'écrire une requête qui peut créer un enregistrement parent basé sur des combinaisons distinctes de UserID et le groupe

+0

Veuillez toujours indiquer explicitement la langue/technologie utilisée. Je suppose que vous utilisez SQL Server, donc ce serait bien d'ajouter ceci à la liste des tags. Ou mentionnez-le dans la question. –

Répondre

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

(où il a une carte d'identité auto-incrémentée)

puis:

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

besoin d'écrire une requête qui peut créer un enregistrement parent basé sur des combinaisons distinctes de UserID et groupe

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