Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2011, 19h55   #1
Invité régulier
 
Homme Stéphane
Développeur informatique
Inscription : juin 2007
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2007
Messages : 10
Points : 5
Points : 5
Par défaut Vérification des obligations

Bonjour,

Voici mes 2 tables :

Citation:
---VISITE_MODELE---

CONTROLE..|..MODELE..|..OBLIGATOIRE
--------------------------------------
..Frein................A..............1
..Moteur..............A..............0
..Embrayage........A..............1
..Frein................B..............1
..Moteur..............B..............1
..Frein................C..............0
..Moteur..............C..............1
..Embrayage.........C..............1


---PROPRIO_VISITE---

PROPRIO..|..MODELE..|..CONTROLE
..toto..............A...........Frein
..toto..............A...........Embrayage
..bibi...............B...........Moteur
..truc..............A...........Frein
..truc..............C...........Moteur
..truc..............C...........Embrayage
J'aimerais savoir si chaque PROPRIO a effectué les visites appropriées pour le ou les modèle(s) qu'il possède.
Par exemple TOTO, qui a un modèle A, a fait les contrôles Frein et Embrayage qui sont obligatoires, donc c'est bon.

Le résultat de la requête devrait ressembler à ça :

Citation:
PROPRIO.|.MODELE..|..OK
----------------------------
toto...........A...........Oui
bibi............B...........Non
truc...........A...........Non
truc...........C...........Oui

Le problème est que je ne vois vraiment pas comment aborder la chose...
J'ai essayé plusieurs choses, mais je ne comprends pas la logique à suivre pour obtenir ce que cherche. Quelqu'un pourrait-il me guider ?

En vous remerciant !
stephantasy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h34   #2
Invité régulier
 
Homme Stéphane
Développeur informatique
Inscription : juin 2007
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : Canada

Informations professionnelles :
Activité : Développeur informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2007
Messages : 10
Points : 5
Points : 5
Finalement j’ai résolu mon problème de la manière suivante :

- Je commence par créer une table avec les contrôles obligatoires à faire
- Ensuite je crée une table avec les contrôles obligatoires faits par les proprios
- Je crée une table contenant les informations des 2 tables précédemment créées.
- Enfin, j’effectue ma requête sur cette dernière table.

Ce qui donne :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
SELECT TT.Proprio, TT.Modele, IF(TT.Nb_Controle_Obligés_Fait >= TT.Nb_Controle_Obligés_à_Faire, 'Oui', 'Non') AS Controle_Obligés_Fait
FROM
    (SELECT NT1.Proprio , NT1.Modele, NT1.Nb_Controle_Obligés_Fait, NT2.Nb_Controle AS Nb_Controle_Obligés_à_Faire 
    FROM
        (SELECT DISTINCT CE.Proprio, CE.Modele, COUNT(CE.Controle) AS Nb_Controle_Obligés_Fait
            FROM Voiture.Proprio_Visite AS CE, Voiture.Visite_Modele AS CP
            WHERE CE.Modele = CP.Modele
            AND CE.Controle = CP.Controle
            AND CP.obligatoire = TRUE
            GROUP BY CE.Proprio, CE.Modele) AS NT1,
 
        (SELECT DISTINCT  CP.Modele, count(CP.Controle) AS Nb_Controle
            FROM Voiture.Visite_Modele AS CP
            WHERE CP.obligatoire = TRUE
            GROUP BY CP.Modele) AS NT2
 
    WHERE NT1.Modele = NT2.Modele
    GROUP BY NT1.Proprio, NT1.Modele) AS TT
Je ne sais pas si on pouvait faire plus simple, mais le résultat est là !
stephantasy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h44.


 
 
 
 
Partenaires

Hébergement Web