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 UNION


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut Requête avec UNION
    Bonjour,
    j'ai fais 2 requêtes me permettant d'interroger la base de données de façon séparer mais ce que je veux c'est qu'avec ces 2 requêtes n'en faire qu'une, mais je me perd quand j'utilise le UNION, du cou je me retourne vers vous afin de m'éclaircir la dessus...

    je souhaite représenter ce tableau:
    Nom : sql.png
Affichages : 39
Taille : 140,7 Ko

    j'ai fais une première requête pour l'horizontale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select 
    	RSC
    	, GROUP_CONCAT(DISTINCT'', Sub_RSC)
    	, GROUP_CONCAT(DISTINCT'', Country) 
    from
    	customer
    GROUP BY RSC
    qui a pour résultat:
    Nom : sql2.JPG
Affichages : 45
Taille : 57,2 Ko

    et une autre pour la verticale:
    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
     
    SELECT
            Release_gsm 															AS "Release"
    	  , Sub_release_gsm															AS "Sub_Release"
    	  , SUM(Total_Mfs) 															AS "Qty"
    	  , FORMAT(100*SUM(Total_Mfs)/(SELECT SUM(Total_Mfs) FROM customer), 1)	    AS "Pourcentage"
    	  , COUNT(*) 																AS "Total"
    FROM
    	customer
    WHERE
    	network_status = "active"			 				        -- réseau actif
    	AND NOT Release_gsm = "/"
      GROUP BY
       	  Release_gsm
      	, Sub_release_gsm
    qui a pour résultat:
    Nom : SQL3.JPG
Affichages : 49
Taille : 62,6 Ko
    comment utiliser le UNION pour ne faire qu'une requête ?
    merci d'avance.

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    Pour faire un union (ou union all) il faut que les différentes requetes est le même nombre de colonne avec le même type en restitution.

    Ici ca n'est pas le cas, votre 1ere requete sélectionne 3 colonnes de type varchar et la deuxieme 2 colonnes de type varchar et 3 colonnes de type decimal.


    On peut cependant "boucher" des trous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select col_varchar as col1, col_varchar as col2, null as col3
    from ma_table
    union all
    select null, null, col_numeric
    from ma_table2

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    merci de votre réponse.
    j'essai tout de suite

  4. #4
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 121
    Points : 51
    Points
    51
    Par défaut
    est-ce bien ainsi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT 
    	  RSC
    	, GROUP_CONCAT(DISTINCT'', Sub_RSC)
    	, GROUP_CONCAT(DISTINCT'', Country) 
    FROM customer
    UNION ALL
    SELECT 
    	  NULL
    	, NULL
    	, SUM(Total_Mfs) 
    from
    	customer
    GROUP BY RSC
    j'obtiens:
    Nom : sql4e.JPG
Affichages : 42
Taille : 23,5 Ko

Discussions similaires

  1. Optimisation requête avec UNION
    Par vaccary dans le forum SQL
    Réponses: 7
    Dernier message: 19/07/2011, 14h06
  2. [AC-97] sous requête avec UNION
    Par SpyKe974 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/03/2011, 14h44
  3. [UNION] - Perte de résultat sur une requête avec UNION
    Par lecail65 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/09/2009, 14h30
  4. Probleme, requète avec UNION?
    Par weetos dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/05/2008, 14h43
  5. Problème requête avec UNION et ORDER BY
    Par Yann21 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/12/2003, 11h02

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