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

Bases de données Delphi Discussion :

Besoin de requête pour ETAT Rave


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut Besoin de requête pour ETAT Rave
    Bonjour,
    je développe une petite application qui gère les analyses dans un centre médicale, j'ai les tables avec les schémas ci-dessous :




    J'ai besoin d'interroger ces tables pour obtenir le résultat suivant :


    Où la jointure entre la table "Entête analyses" et "Détail analyses" se fait par le "Code", alors si quelqu'un sait comment formuler ces requêtes je serai ravi de le savoir (avec mes propres tests il m'a fallu créer une table intermédiaire le truc que je veux pas le faire)
    n'hésiter pas à poser des questions pour mieux comprendre mon système.

    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Billets dans le blog
    1
    Par défaut
    Y'a un truc que je trouve bizarre dans votre modèle de donnée c'est que dans la table du détail des analyses il y a une redondance d'informations à savoir que le CCat et Lib_Analyse on peut les récupérer en jointant entre "détail analyse" et "analyse" mais bon admettons, peut-être pour optimiser les traitements.

    1 et 2)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT cat.Lib_Categorie, da.Lib_Analyse, COUNT(*)
    FROM entete_analyse ea
    INNER JOIN detail_analyse da ON da.Code = ea.Code
    INNER JOIN categorie cat ON cat.CCat = da.CCat
    WHERE Type_med = 'I' // 'E'
    AND // conditions sur dates
    GROUP BY cat.Lib_Categorie, da.Lib_Analyse

    3)

    j'imagine qu'un patient correspond à une ligne dans la table des entête d'analyse.

    Pour cette dernière requête, il y a plusieurs façon de voir les choses surtout si c'est pour un report. On peut notamment voir deux jeux d'enregistrements un donnant les valeurs pour les Internes et un autre pour les Externes. Et un troisième jeu contenant toutes les villes, ce dernier servant de maître dans une relation maître-détail avec les deux autres jeux.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    Pour le 3eme point, peux-tu me dire comment définir ces jeux d'enregistrements et quelle est la requête à appliquer (plus de détails S.T.P)

    Merci

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    En faites pour le 3em point il va te falloir faire une requête assez complexe

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Select 
      e.Ville,
      (
        Select Count(*) 
        from Entete as e1 
        where e1.Code = e.Code and e1.Type_med = 'I'
      ) as NbPatient_Interne,
      (
        Select Count(*) 
        From Entete as e2 
        inner join Analyse as a2 on e2.code = a2.Code 
        Where e2.Code = e.Code and e2.Type_med = 'I'
      ) as NbAnalyse_Interne,
      (
        Select Count(*) 
        from Entete as e3 
        where e3.Code = e.Code and e3.Type_med = 'E'
      ) as NbPatient_Externe,
      (
        Select Count(*) 
        From Entete as e4 
        inner join Analyse as a4 on e4.code = a4.Code 
        Where e4.Code = e.Code and e2.Type_med = 'E'
      ) as NbAnalyse_Externe
    From Entete as e
    Where Date_Saisie Between @PDateDebut and @PDateFin
    Group By Ville

    Pas sur que ca fonctionne et il faut mettre les bon nom de champs et de table, mais l'idée est là
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    Merci Beaucoup pour votre aide je vais tester et je vous tiendrais au courrant

  6. #6
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 48
    Par défaut
    Salut tout le monde, comme j'ai promis de vous tenir informé,
    La deuxième solution ne marche pas le SELECT imbriqué ne trouve pas une correspondance avec le SELECT global (des total avec 0) que faire si c'est possible

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Quelle solution de fonctionne pas :

    Le 2) de Aka Guymelef
    ou la requête que je t'ai fourni ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. [AC-2003] Tester 52 étiquettes avec Requête pour Etat.
    Par Max02 dans le forum IHM
    Réponses: 14
    Dernier message: 12/02/2013, 20h00
  2. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  3. Besoin d'aide pour optimiser requête SQL
    Par Keuf95 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 06/09/2005, 16h02
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38

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