SQL Mettre des ligne dans des colonne
Résolu/Fermé
big-66
Messages postés
7
Date d'inscription
dimanche 19 février 2012
Statut
Membre
Dernière intervention
5 mars 2012
-
19 févr. 2012 à 17:07
big-66 Messages postés 7 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 5 mars 2012 - 20 févr. 2012 à 15:26
big-66 Messages postés 7 Date d'inscription dimanche 19 février 2012 Statut Membre Dernière intervention 5 mars 2012 - 20 févr. 2012 à 15:26
A voir également:
- Sql transposer ligne en colonne
- Vente en ligne particulier - Guide
- Déplacer une colonne excel - Guide
- Partage photo en ligne gratuit - Guide
- Apparaitre hors ligne instagram - Guide
- Aller à la ligne excel - Guide
3 réponses
jee pee
Messages postés
39498
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 mars 2024
9 203
19 févr. 2012 à 19:27
19 févr. 2012 à 19:27
Salut,
J'utiliserais une jointure externe, exemple sous oracle :
insert into new_table
select u.id_users,u.nom, nvl(p1.profile,0),nvl(p2.profile,0),nvl(p3.profile,0),nvl(p4.profile,0)
from users u, profile p1, profile p2, profile p3, profile p4
where u.id_users=p1.id_users(+) and
u.id_users=p2.id_users(+) and
u.id_users=p3.id_users(+) and
u.id_users=p4.id_users(+)
cdlt
J'utiliserais une jointure externe, exemple sous oracle :
insert into new_table
select u.id_users,u.nom, nvl(p1.profile,0),nvl(p2.profile,0),nvl(p3.profile,0),nvl(p4.profile,0)
from users u, profile p1, profile p2, profile p3, profile p4
where u.id_users=p1.id_users(+) and
u.id_users=p2.id_users(+) and
u.id_users=p3.id_users(+) and
u.id_users=p4.id_users(+)
cdlt
big-66
Messages postés
7
Date d'inscription
dimanche 19 février 2012
Statut
Membre
Dernière intervention
5 mars 2012
19 févr. 2012 à 22:16
19 févr. 2012 à 22:16
Merci pour votre réponse j'ai du modifier un peut votre code car je travaille en MYsql j'ai mis ça :
insert into new_table
select u.id_users,u.nom, if(p1.profile=1,p1.profile,0),if(p2.profile=2,p2.profile,0),if(p3.profile=3,p3.profile,0),if(p4.profile=4,p4.profile,0)
from users u, profile p1, profile p2, profile p3, profile p4
where u.id_users=p1.id_users and
u.id_users=p2.id_users and
u.id_users=p3.id_users and
u.id_users=p4.id_users
mais j'ai des ligne qui sont afficher plusieurs fois avec des combinaisons différentes sur les profiles.
genre :
1|toto|p1|p2|0|P4
1|toto|0|p2|p3|0
insert into new_table
select u.id_users,u.nom, if(p1.profile=1,p1.profile,0),if(p2.profile=2,p2.profile,0),if(p3.profile=3,p3.profile,0),if(p4.profile=4,p4.profile,0)
from users u, profile p1, profile p2, profile p3, profile p4
where u.id_users=p1.id_users and
u.id_users=p2.id_users and
u.id_users=p3.id_users and
u.id_users=p4.id_users
mais j'ai des ligne qui sont afficher plusieurs fois avec des combinaisons différentes sur les profiles.
genre :
1|toto|p1|p2|0|P4
1|toto|0|p2|p3|0
big-66
Messages postés
7
Date d'inscription
dimanche 19 février 2012
Statut
Membre
Dernière intervention
5 mars 2012
20 févr. 2012 à 15:26
20 févr. 2012 à 15:26
voila c'est bon j'ai réglé mon problème :
insert into new_table
select u.id_users,u.nom, if(p1.profile=1,p1.profile,0),if(p2.profile=2,p2.profile,0),if(p3.profile=3,p3.profile,0),if(p4.profile=4,p4.profile,0)
from users u, profile p1, profile p2, profile p3, profile p4
where u.id_users=p1.id_users and
u.id_users=p2.id_users and
u.id_users=p3.id_users and
u.id_users=p4.id_users
ON DUPLICATE KEY UPDATE
profiles1 = IFNULL(profiles1,0),
profiles2 = IFNULL(profiles2,0),
profiles3 = IFNULL(profiles3,0),
profiles4 = IFNULL(profiles4,0)
Merci jee pee Pour ton aide.
insert into new_table
select u.id_users,u.nom, if(p1.profile=1,p1.profile,0),if(p2.profile=2,p2.profile,0),if(p3.profile=3,p3.profile,0),if(p4.profile=4,p4.profile,0)
from users u, profile p1, profile p2, profile p3, profile p4
where u.id_users=p1.id_users and
u.id_users=p2.id_users and
u.id_users=p3.id_users and
u.id_users=p4.id_users
ON DUPLICATE KEY UPDATE
profiles1 = IFNULL(profiles1,0),
profiles2 = IFNULL(profiles2,0),
profiles3 = IFNULL(profiles3,0),
profiles4 = IFNULL(profiles4,0)
Merci jee pee Pour ton aide.