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

Requêtes et SQL. Discussion :

Aide requête sur plusieurs tables


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Aide requête sur plusieurs tables
    Bonjour,

    Je me casse la tête sur une requete depuis quelques temps et peut être pourriez vous m'aider...
    J'ai plusieurs tables (PATIENT, CONSULTATION, ATELIER, ACTIVITE, PARTCIPER ATELIER)
    Je voudrais avoir une requete qui me sorte ma file active de patients sur l'année ainsi que le décompte des consultations, des ateliers auxquels il a participé.
    Ma table CONSULTATION est reliée à ma table PATIENT. J'ai un critère qui a comme valeur "DE", "CST IND", "BILAN" et DATE_CONSULTATION
    Ma table ATELIER est reliée à ma table ACTIVITE pour afficher un critère TYPE_ACTIVITE qui a comme valeur "APA", "DIETETIQUE", "RELAXATION", "AUTRE THEMATIQUE".
    Ma table PARTCIPER ATELIER qui est reliée a ma table PATIENT et ATELIER à une case a cocher "PRESENCE_ATELIER"
    Ma table ATELIER a un critère DATE_ATELIER

    Ma file active représente les patients ayant un DE mais également ceux n'ayant pas de DE mais ayant au moins une CST IND ou un BILAN ou ayant une PRENSENCE_ATELIER de cocher.
    Il faudrait que cette requête me nomme les patients et me compte les différentes valeurs (DE, CST IND, BILAN, PRESENCE ATELIER sur les différentes ACTIVITE) sur l'année grâce à un filtre par exemple.

    Quelqu'un saurait m'aiguiller? Je ne maitrise absolument pas le SQL...

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Par défaut
    Bonjour,

    sur quel aspect rencontres-tu un soucis actuellement ?

    - créer une requete de base ?
    - effectuer les jointures entre les tables ?
    - construire la requete complete ?

    - As tu des essais ou des bouts de SQL qui ne t'apportent pas entiere satisfaction sur lesquels on peut commencer a te proposer des pistes de solutions ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Bonjour,

    sur quel aspect rencontres-tu un soucis actuellement ?

    - créer une requete de base ?
    - effectuer les jointures entre les tables ?
    - construire la requete complete ?

    - As tu des essais ou des bouts de SQL qui ne t'apportent pas entiere satisfaction sur lesquels on peut commencer a te proposer des pistes de solutions ?
    Bonjour,

    Tout d'abord, merci de vous intéresser à ma demande .
    Concernant les jointures entre les tables je penses que c'est ok.
    Pour faire une requête de base j'y arrive a peu pret.
    C'est la construction de cette requete précisément qui me pose soucis.

    J'ai effectuer une requete avec les champs que je voudrais voir apparaitre et j'ai copier la requete sql.
    Ma difficulté réside dans le fait que je voudrais mettre des valeurs comme en tête de colonne et que je ne sais pas faire ca ...
    Le résultat de ma requête en tête de colonne devrait être :
    NOM_PATIENT
    PRENOM_PATIENT
    TYPE_CONSULTATION = DE (comptage des ID_CONSULTATION où TYPE_CONSULTATION=DE avec filtre année sur DATE_CONSULTATION)
    TYPE_CONSULTATION = CST IND (comptage des ID_CONSULTATION où TYPE_CONSULTATION=CST IND avec filtre année sur DATE_CONSULTATION)
    TYPE_CONSULTATION = BILAN (comptage des ID_CONSULTATION où TYPE_CONSULTATION=BILAN avec filtre année sur DATE_CONSULTATION)
    TYPE_ACTIVITE=ACTIVITE PHYSIQUE(comptage ID_ATELIER où PRESENCE_ATELIER=vrai et TYPE_ACTIVITE=ACTIVITE PHYSIQUE avec filtre année sur DATE_ATELIER)
    TYPE_ACTIVITE=RELAXATION (comptage ID_ATELIER où PRESENCE_ATELIER=vrai et TYPE_ACTIVITE=RELAXATION avec filtre année sur DATE_ATELIER)
    TYPE_ACTIVITE=DIETETIQUE (comptage ID_ATELIER où PRESENCE_ATELIER=vrai et TYPE_ACTIVITE=DIETETIQUE avec filtre année sur DATE_ATELIER)
    TYPE_ACTIVITE=AUTRE THEMATIQUE (comptage ID_ATELIER où PRESENCE_ATELIER=vrai et TYPE_ACTIVITE=AUTRE THEMATIQUE avec filtre année sur DATE_ATELIER)
    TOTAL ATELIER (comptage ID_ATELIER où PRESENCE_ATELIER=vrai avec filtre par année sur DATE_ATELIER)

    Voila le SQL de la requete qui m'affiche les resultats (par contre cette requete ne m'affiche pas la présence des ateliers si ID_CONSULTATION = null alors que je voudrais que ce soit le cas...)

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT PATIENT.NOM_PATIENT, PATIENT.PRENOM_PATIENT, CONSULTATION.DATE_CONSULTATION, CONSULTATION.ID_CONSULTATION, CONSULTATION.TYPE_CONSULTATION, [PARTICIPER ATELIER].PRESENCE_ATELIER, ATELIER.DATE_ATELIER, ATELIER.ID_ATELIER, ACTIVITE.TYPE_ACTIVITE
    FROM (PATIENT INNER JOIN ((ACTIVITE INNER JOIN ATELIER ON ACTIVITE.ID_ACTIVITE = ATELIER.ACTIVITE_ATELIER) INNER JOIN [PARTICIPER ATELIER] ON ATELIER.ID_ATELIER = [PARTICIPER ATELIER].ID_ATELIER) ON PATIENT.ID_PATIENT = [PARTICIPER ATELIER].ID_PATIENT) INNER JOIN CONSULTATION ON PATIENT.ID_PATIENT = CONSULTATION.ID_PATIENT_CONSULTATION
    WHERE ((([PARTICIPER ATELIER].PRESENCE_ATELIER)=True));


    Je ne sais pas si j'ai réussi a être clair dans ma requete, pour moi ca me parait bien complexe a faire et à expliquer... alors a comprendre j'ose meme pas imaginer xD

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 21
    Points : 27
    Points
    27
    Par défaut
    Bonjour kashtoi,

    Voila le SQL de la requete qui m'affiche les resultats (par contre cette requete ne m'affiche pas la présence des ateliers si ID_CONSULTATION = null alors que je voudrais que ce soit le cas...)
    Sur ce point cela vient de tes jointures, tu as utilisé que des qui te renvoie un résultat si il y a une correspondance dans les 2 tables donc si dans une table ta clé est NULL cela ne te le renvoie pas. Il faut utilisé ou suivant ta structure.

    Pour compter les nombres d'ID, utilise la fonction COUNT().

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je vais essayer de travailler sur ce que tu m'as dit.
    Bêtement j'ai cru que jointure des tables signifiait relation entre les tables dans le schéma conceptuel de données...

Discussions similaires

  1. suite au problème de requête sur plusieur table
    Par michelGProuq dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/07/2006, 16h19
  2. [VB6] RecordSet, Oracle, requête sur plusieurs Tables
    Par pier* dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/04/2006, 10h19
  3. Requête sur plusieurs tables
    Par sta_schmitt dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/03/2006, 13h54
  4. Requéte sur plusieurs tables
    Par polux23 dans le forum Requêtes
    Réponses: 11
    Dernier message: 23/02/2006, 23h00
  5. Requête sur plusieurs tables
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/07/2005, 12h25

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