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 MySQL Discussion :

Requête avec jointure et variable


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Par défaut Requête avec jointure et variable
    Bonjour à toutes et à tous,

    j'ai 2 tables du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    table1: indentifiant, date entree, date sortie, numero intervention,numero_entree
    table 2 identifiant, date intervention, nature intervention
    Voici un exemple req1.xlsx sachant que l'identifiant est le même pour les 2 tables, mais il apparait plusieurs fois.

    J'aimerais faire une requête qui me donne le nombre de natures en fonction entre la date de sortie et la prochaine date d'entrée. S'il n'y a pas de date alors il faut calculer le nombre de natures de la date de sortie jusqu'à maintenant.

    Dans mon exemple : le nombre de natures de 1 entre le 07/07/2004 et le 12/06/2005

    Quelqu'un peut me donner des pistes ? Comment puis-je repérer les dates entrees sorties différentes?

    Merci infiniment

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Par défaut
    Étant donné que je partais de fichier Excel pour créer mes tables, j'ai réussi après quelques manipulations à obtenir 2 tables suivantes :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    table1: indentifiant, date entree, numero intervention, date sortie, date entree prochain, ,numero_entree
    table 2: identifiant, date intervention, nature intervention
    Mon objectif est de trouver le nombre d'intervention (dans mon cas le nombre non distinct de natures d'intervention) entre la date de sortie et date entree pour chaque numéro intervention

    Au départ, j'ai essayé une jointure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select distinct numero intervention,  count(nature intervention) from table 2 inner join  on table 1.identifiant = table2.identifiant
    group by numero intervention
    Mais mon problème est pour la clause where, car je souhaite qu'il récupère les champs date sortie et date prochaine entree

    Quelqu'un peut-il m'aider?

    merci

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    bonjour,

    rajoutez votre condition sur les dates dans votre clause de jointure.

    Sinon je pense que vous devriez regarder du côté des jointures externes : http://sqlpro.developpez.com/cours/s...ntures/#LIII-C

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Par défaut
    Merci pour ta réponse. En attendant de lire ton lien j'ai testé cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  numero intervention, COUNT(nature intervention) FROM t2 
    INNER JOIN  rps ON t2.identifiant = t1.identifiant where t2.date intervention between t1.date sortie and t1.entree_prochain
    GROUP BY   t1.numero intervention
    Même si t2 n'a pas de numéro intervention, le select le récupère par la jointure, mais le problème que j'ai c'est :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files\EasyPHP-DevServer-14.1VC9\modules\phpmyadmin416x140130150217\libraries\dbi\DBIMysqli.class.php on line 285
    Ma table T2 comporte 18000 lignes alors que t1 comporte environ 8000, donc dans ce cas est-ce ma jointure qui n'est pas bonne ou dois-je augmenter le temps de traitement de mon easy php

    merci

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    rajoutez des index sur les colonnes "identifiant " s'il n'y en a pas.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Par défaut
    J'ai réduit ma base de données, car j'avais des champs inutiles, cela fonctionne très bien. Il faudra quand même que je m'intéresse aux index.

    Merci beaucoup pour l'aide

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

Discussions similaires

  1. Requête avec jointure
    Par Maglight dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/11/2005, 09h57
  2. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 09h45
  3. Requête avec jointures
    Par Corben dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/11/2004, 12h55
  4. Mise à jour de table impossible après requête avec jointure
    Par sto dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/03/2004, 13h24
  5. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33

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