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 :

Multi-requêtes en colonnes (jointure ou union)


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut Multi-requêtes en colonnes (jointure ou union)
    Bonjour à tous!
    Je débute en SQL et j'aurais besoin d'un conseil rapide:

    J'ai une table qui comporte une liste d'interventions ainsi que leur date de réalisation.

    ID | inter | date_inter

    J'aimerais réaliser une requête qui en une seule fois m'affiche dans plusieurs colonnes le nombre de date appartenant à un interval de temps. Je m'explique:

    j'associe un code couleur (jaune par ex) aux dates entre 2 et 6 mois, rouge entre 6 et 12 mois, etc...

    Voici le squelette de ma requête réalisée avec des UNIONS.

    Code : 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
    29
    (
    SELECT COUNT(l.Hostname) AS 'vide' FROM `liste_routeur_dates` l WHERE l.datemax IS NULL
    ) UNION (
    SELECT COUNT(Hostname) 
    	FROM `liste_routeur_dates` l2
    	WHERE l2.datemax IS NOT NULL
    ) UNION(
    SELECT COUNT(Hostname) AS 'vert'
    	FROM `liste_routeur_dates` l3
    	WHERE l3.datemax IS NOT NULL
    	AND ROUND((TO_DAYS(NOW()) - TO_DAYS('l3.datemax_ft'))/30) <= 1
    ) UNION (
    SELECT COUNT(Hostname) AS 'jaune'
    	FROM `liste_routeur_dates` l4
    	WHERE l4.datemax IS NOT NULL 
    	AND ROUND((TO_DAYS(NOW()) - TO_DAYS('l4.datemax_ft'))/30) <= 3
    	AND ROUND((TO_DAYS(NOW()) - TO_DAYS('l4.datemax_ft'))/30) > 1
    ) UNION (
    SELECT COUNT(Hostname) AS 'orange'
    	FROM `liste_routeur_dates` l5
    	WHERE l5.datemax IS NOT NULL
    	AND ROUND((TO_DAYS(NOW()) - TO_DAYS('l5.datemax_ft'))/30) > 3
    	AND ROUND((TO_DAYS(NOW()) - TO_DAYS('l5.datemax_ft'))/30) <=6 
    ) UNION (
    SELECT COUNT(Hostname) AS 'rouge'
    	FROM `liste_routeur_dates` l6
    	WHERE l6.datemax IS NOT NULL
    	AND ROUND((TO_DAYS(NOW()) - TO_DAYS('l6.datemax_ft'))/30) > 6
    )
    Cette requête ne fonctionne pas vraiment et a l'inconvénient d'afficher les résultats sur une seule colonne et plusieurs lignes (surement à cause de l'usage de UNION)

    vide
    266
    0
    0


    Connaissez-vous un moyen pour afficher les résultats sous la forme

    nombre_vert | nombre_jaune | nombre_rouge | etc.....

    J'ai le sentiment qu'une jointure du type RIGHT JOIN est nécessaire mais je n'ai pas de relations directes entre mes requêtes..

    J'espère avoir été clair et vous remercie pour vos (toujours) précieux conseils.

  2. #2
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 188
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    tu peux t'inspirer de ce post !
    Cordialement.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut
    Merci, c'est tout à fait ça!!!

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

Discussions similaires

  1. Requête multi adresses en colonne
    Par gibono dans le forum Développement
    Réponses: 6
    Dernier message: 19/06/2015, 14h01
  2. Réponses: 2
    Dernier message: 04/07/2014, 09h36
  3. Requète multi-tables relationnelles avec jointure
    Par alextva dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/11/2009, 09h43
  4. Requête à plusieurs colonnes avec la fonction COUNT
    Par zigune dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/11/2004, 10h43
  5. Réponses: 1
    Dernier message: 29/08/2004, 19h45

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