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 :

Doublon sur requête UNION


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Doublon sur requête UNION
    Bonjour à tous et à toutes.

    J'ai un soucis qui dure depuis deux jours déjà sur une requête SQL
    c'est une requête union de deux fichiers (facture et avoir) simplement pour additionner les totaux pour une même date.
    Le problème est la requête union ne fusionne pas certaine dates et me laisse donc des doublons (pas très sympathique pour une requête union)
    donc voilà le code si quelqu’un a une idée se serait très aimable

    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
    SELECT  
    	SUM(Facture.TotalHT) AS la_somme_Totalht,	
    	SUBSTRING(Facture.DateFacture,3,4) AS AAMM
    FROM 
    	Facture
    WHERE Facture.DateFacture BETWEEN {DTEFin} AND {DTEDebut}
    GROUP BY 
    	SUBSTRING(Facture.DateFacture,3,4)
     
    	UNION 
    SELECT  
    SUM(Avoir.TotalHT) AS la_somme_Totalht,	
    SUBSTRING(Avoir.DateAvoir,3,4) AS AAMM
    FROM 
    Avoir
    WHERE Avoir.DateAvoir BETWEEN {DTEFin} AND {DTEDebut}
    GROUP BY 
    SUBSTRING(Avoir.DateAvoir,3,4)
     
    ORDER BY AAMM ASC
    Merci d'avance
    ps: le SUBSTRING c'est pour récupérer seulement le mois et la date pour pouvoir afficher les résultats par mois dans un graphique

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    C'est le comportement normal ! si une date se retrouve dans les deux sous requetes, il y a deux cas :
    - si la somme totale de la première requête est égale à celle de la deuxième requete, alors il ne restera qu'une ligne (mais les sommes ne seront pas additionnées ! )
    - si les sommes sont différentes, alors les deux lignes resteront.

    N'est pas plutôt ceci que vous voulez ?

    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
     
     
     
    SELECT  
    	SUM(TotalHT) AS la_somme_Totalht,	
    	AAMM
    FROM (
    	SELECT  
    		TotalHT,
    		SUBSTRING(Facture.DateFacture,3,4) AS AAMM
    	FROM 
    		Facture
    	WHERE Facture.DateFacture BETWEEN {DTEFin} AND {DTEDebut}	
    	UNION ALL
    	SELECT  
    		TotalHT,
    		SUBSTRING(Facture.DateFacture,3,4) AS AAMM
    	FROM 
    		Avoir
    	WHERE Facture.DateFacture BETWEEN {DTEFin} AND {DTEDebut}	
    ) T
    GROUP BY AAMM

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    En effet votre requête marche parfaitement. Un grand Merci.
    j'ai mal saisie les fonctionnalités de la requête UNION.

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

Discussions similaires

  1. [WD16] Sous-Requête sur Requête UNION
    Par JustineJ dans le forum WinDev
    Réponses: 1
    Dernier message: 11/08/2011, 13h08
  2. GROUP BY sur requête UNION
    Par DoubleClic dans le forum Requêtes
    Réponses: 6
    Dernier message: 02/02/2010, 13h26
  3. Critère sur requête union
    Par MelaAllIn dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 04/11/2009, 15h24
  4. [MySQL] Doublons sur requêtes à trois tables
    Par cori79 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/05/2009, 02h59
  5. Doublons sur requête
    Par NoBru dans le forum Access
    Réponses: 9
    Dernier message: 18/03/2006, 07h00

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