IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

create a new table B from data coming from a table A


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 9
    Points
    9
    Par défaut create a new table B from data coming from a table A
    Bonjour,

    j'ai une table comme ça:

    Id A1 A2 A3 Nbre
    1234 1 0 0 3
    1234 1 0 1 2
    1234 1 1 1 5
    1235 1 0 0 6
    1235 1 0 1 7
    1235 1 1 1 8

    à partir des données de la table précedente je veux créer une autre comme ça:

    Id B1 B2 B3 somme
    1234 3 2 5 10
    1235 6 7 8 21

    c'est - à - dire:
    la combinaison (A1=1,A2=0,A3=0) me donne le type B1
    la combinaison (A1=1,A2=0,A3=1) me donne le type B2
    la combinaison (A1=1,A2=1,A3=1) me donne le type B3

    Merci de vos aides :-). (j'arrive pas à voir l'astuce)

  2. #2
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    J'ai du mal à comprendre ce que tu veux faire...

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Ok j'ai résolu mon problème

    test=*# select * from tab_a;
    id | a1 | a2 | a3 | cnt
    ------+----+----+----+-----
    1234 | 1 | 0 | 0 | 4
    1234 | 1 | 0 | 1 | 8
    1234 | 1 | 1 | 1 | 5
    1235 | 1 | 0 | 0 | 6
    1235 | 1 | 0 | 1 | 7
    1235 | 1 | 1 | 1 | 12
    (6 rows)

    test=*# select id, b1,b2,b3, sum(b1+b2+b3) as s from (select id,
    sum(case when a1=1 and a2=0 and a3=0 then cnt else 0 end) as b1,
    sum(case when a1=1 and a2=0 and a3=1 then cnt else 0 end) as b2,
    sum(case when a1=1 and a2=1 and a3=1 then cnt else 0 end) as b3 from
    tab_a group by id order by id) foo group by id, b1, b2, b3 order by id;
    id | b1 | b2 | b3 | s
    ------+----+----+----+----
    1234 | 4 | 8 | 5 | 17
    1235 | 6 | 7 | 12 | 25
    (2 rows)

  4. #4
    Membre habitué Avatar de budtucker
    Profil pro
    Développeur multimédia
    Inscrit en
    Avril 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Avril 2007
    Messages : 176
    Points : 197
    Points
    197
    Par défaut
    Même avec la réponse, j'ai du mal à cerner ce que tu veux faire. Mais si tu y es arrivé, tant mieux !!!!

    Bravo !!
    Sud04

  5. #5
    Membre averti Avatar de icer
    Inscrit en
    Janvier 2006
    Messages
    332
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 332
    Points : 363
    Points
    363
    Par défaut
    Même avec la réponse, j'ai du mal à cerner ce que tu veux faire. Mais si tu y es arrivé, tant mieux !!!!
    + 1

    8o ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cannot create a new instance
    Par iacobm dans le forum JOnAS
    Réponses: 2
    Dernier message: 20/02/2008, 00h16
  2. Réponses: 9
    Dernier message: 07/02/2008, 13h44
  3. Crash de table sur LOAD DATA
    Par guidav dans le forum Outils
    Réponses: 14
    Dernier message: 09/01/2008, 09h33
  4. table A + table B (LOAD DATA INFILE) et JOIN ?
    Par ctobini dans le forum Requêtes
    Réponses: 4
    Dernier message: 03/01/2008, 17h24
  5. [forms] Data Block Lov Plusieurs tables jointure
    Par loupin dans le forum Forms
    Réponses: 5
    Dernier message: 13/09/2006, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo