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

Bases de données Delphi Discussion :

Problème avec l'argument DISTINCT en SQL


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Points : 115
    Points
    115
    Par défaut Problème avec l'argument DISTINCT en SQL
    Bonjour à tous,

    J'ai un petit problème avec l'argument DISTINCT.
    J'utilise FIREBIRD comme base de donnée.
    J'ai une table nomée COMPTA_MAIN qui contient entre autre les champs CODE_NAT, CODE_OPE, MONTANT, etc...
    Le champ CODE_NAT contient différent élément comme Alimentation, médecin, mutuelle, etc..., les différents éléments peuvent biensûr apparaîtrent plusieurs fois dans la colonne CODE_NAT.
    Le champ CODE_OPE contient les valeurs E pour Entrée et S pour Sortie.
    Le champ MONTANT pour les montants.

    Si je fais la commande SQL suivante, j'ai bien les éléments de CODE_NAT qui n'apparaissent qu'une seule fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT CODE_NAT FROM COMPTA_MAIN
    Mais si je fais la commande ci-dessous, alors j'ai CODE_NAT qui apparait autant de fois qu'il existe dans la table et la somme n'est pas effectué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DISTINCT CODE_NAT, CODE_OPE, SUM(MONTANT) AS MONTANT
    FROM COMPTA_MAIN
    GROUP BY CODE_NAT, CODE_OPE, MONTANT
    J'aimerai que les éléments de CODE_NAT, n'apparaissent qu'une seule fois avec la somme totale pour chaque CODE_NAT

    Si mon explication n'est pas assé claire faite le moi savoir

    Merci d'avance pour votre aide

    Jeankiki

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    A vue de nez, je te conseillerais d'enlever le MONTANT de ta clause GROUP BY :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT CODE_NAT, CODE_OPE, SUM(MONTANT) AS MONTANT
    FROM COMPTA_MAIN
    GROUP BY CODE_NAT, CODE_OPE
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Il semble que le distinct ne serve à rien ici. En effet, la clause GROUP BY vas regrouper les champs CODE_NAT et CODE_OPE et ne les fera apparaitre qu'une fois chacun.
    De plus, il n'est pas nécessaire de mettre le montant dans le group by.

    On ne met en général dans le Group By que les champs qui sont dans la requette SQL et qui ne font pas partis d'une opération (SUM, AVG, MIN etc...)

    RT.

Discussions similaires

  1. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 10h11
  2. [VB6] Problème avec l'opérateur LIKE en SQL
    Par MGD_Software dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 22/07/2006, 14h56
  3. [CR11] Problème avec un champ d'expression SQL
    Par Benoit30 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 30/05/2006, 16h22
  4. [débutant] problème avec les arguments de fopen
    Par Anouschka dans le forum C++
    Réponses: 13
    Dernier message: 23/02/2006, 14h56
  5. [SQL-Server] Problème avec odbc et ma connexion SQL Server
    Par vodevil dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 09/12/2005, 10h04

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