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

Langage SQL Discussion :

regroupement sur une ligne


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Par défaut regroupement sur une ligne
    Bonjour,

    Voila ma base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    id_patient   date_patient  type_test	valeur_test
    1               01/01/2005    test1          50
    1               01/01/2005    test2          2
    2               01/01/2005    test1          10
    3               01/01/2005    test2          6
    1               20/02/2006    test1          50
    et avec une requete sql, je voudrais obtenir ca:

    1 01/01/2005 test1 50 test2 2
    2 01/01/2005 test1 10 null null
    3 01/01/2005 test2 6 null null
    1 20/02/2006 test1 50 null null
    Je voudrais regrouper sur une meme ligne, tous les tests qui correspondent à un patient pour chaque date.

    Est-ce qu'il y a une solution?

    Merci d'avance

  2. #2
    Membre éprouvé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut
    essaie déjà ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_patient, date_patient, type_test, valeur_test FROM PATIENT WHERE  and patient=xxx date=xxx ;
    Pour l'affichage tu vois ça avec php ou autre

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Par défaut
    Citation Envoyé par Ben42
    essaie déjà ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_patient, date_patient, type_test, valeur_test FROM PATIENT WHERE  and patient=xxx date=xxx ;
    Pour l'affichage tu vois ça avec php ou autre
    Le problème, c'est que je ne peux rien programmer à part de la SQL pour l'affichage, mes clients possedent seulement l'editeur d'etats BIRT et ils veulent se servir des filtres de cet outil. Le seul moyen pour qu'ils filtrent correctement, c'est que chaque patient à une date correponsde à une seule ligne.

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Par défaut
    Si j'arrive à faire cette requete ci, ca ira:

    voila je récupere tous les patients qui ont une seule experience:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select count(test.id_patient),
    test.id_patient,
    test.date_patient
    from test
    group by test.id_patient,test.date_patient
    having count(*)=1
    ca fonctionne

    maintenant, pour tous ces patients je voudrais recuperer toutes les données de l'enregistrement, notamment le type de test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select t1.id_patient,
    t1.date_patient,
    t1.sexe,
    t1.type_test,
    t1.valeur_test
    from test t1
    where exists(select count(t2.id_patient),
    t2.id_patient,
    t2.date_patient
    from test t2
    where t1.id_patient=t2.id_patient
    and t1.date_patient=t2.date_patient
    group by t2.id_patient,t2.date_patient
    having count(*)=1)
    mais ca ne marche pas, vous avez une idée??

  5. #5
    Membre chevronné Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Par défaut
    essaye ca :
    select '1 01/01/2005 test1 50 test2 2'||'
    2 01/01/2005 test1 10 null null '||'
    3 01/01/2005 test2 6 null null '||'
    1 20/02/2006 test1 50 null null' from dual
    ou :
    select id_patient, date_patient from T where id_patient, date_patientin (
    select id_patient, date_patient from T group by id_patient, date_patient )

    pour la deuxieme partie c'est possible a condition que tu n'ai que 2 test max...
    tu vas devoir joindre ta table a ta table.
    sans doute utiliser le decode ou le nvl() (ca existe pe seulement sous oracle)

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 4
    Par défaut
    Citation Envoyé par XtofRoland
    essaye ca :
    select '1 01/01/2005 test1 50 test2 2'||'
    2 01/01/2005 test1 10 null null '||'
    3 01/01/2005 test2 6 null null '||'
    1 20/02/2006 test1 50 null null' from dual
    ou :
    select id_patient, date_patient from T where id_patient, date_patientin (
    select id_patient, date_patient from T group by id_patient, date_patient )

    pour la deuxieme partie c'est possible a condition que tu n'ai que 2 test max...
    tu vas devoir joindre ta table a ta table.
    sans doute utiliser le decode ou le nvl() (ca existe pe seulement sous oracle)
    merci, comme j'ai deux tests max, je vais utiliser "left outer join", c'est encore plus simple

Discussions similaires

  1. [AC 2010] Regroupement sur une seule ligne
    Par Nicole14 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 14/02/2014, 18h45
  2. Réponses: 0
    Dernier message: 16/12/2013, 17h30
  3. [AC-2003] Regroupement sur une seule ligne
    Par wd_newbie dans le forum Access
    Réponses: 3
    Dernier message: 22/04/2012, 16h31
  4. Regroupement sur une seule ligne
    Par tonyC dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/12/2009, 11h17
  5. pointer sur une ligne d'un TStringGrid
    Par jeannot27 dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/10/2004, 10h56

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