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 :

Requêtes SQL Delphi


Sujet :

Bases de données Delphi

  1. #21
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut Bonjour
    j'ai essayer avec le code suivant ça marche il m'affiche la somme des produits de table1 puis la somme des produits de table2 puis la somme des produits de table3 les uns à la suite des autres mais moi je voudrai avoir la somme des produits qui figurent dans les trois tables en même temps
    voilà le code
    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
     
    Select  produit, sum(quantité) 
    From table1
    Group by  Produit
     
    UNION ALL
     
    Select  produit, sum(quantité) 
    From table2
    Group by  Produit
     
    UNION ALL
    Select  produit, sum(quantité) 
     
    From table3
    Group by  Produit
     
    )

  2. #22
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut la suite
    j'ai changer dans le début du code afin d'avoir tous les produits et la somme de leurs quantité comme suit :
    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
    select distinct Produit, QteTotal from ( 
     
    Select  produit, sum(quantité) as QteTotal
    From table1
    Group by  Produit
     
    UNION ALL
     
    Select  produit, sum(quantité) as QteTotal
    From table2
    Group by  Produit
     
    UNION ALL
    Select  produit, sum(quantité) as QteTotal
     
    From table3
    Group by  Produit
     
    )
    mais un message d'eerur me dit : "utilisation incorrecte du mot clé sélect ligne n°3"
    j'espère que vous pouver m'aider à trouver la solution

  3. #23
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 151
    Par défaut
    Tu veux la somme globale, dans ce cas, quelle est la clé de jointure sur les trois tables ? ça pourrait donner ceci sans grande conviction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Table1.Produit, SUM(Table1.Quantite) + SUM(Table2.Quantite) + SUM(Table3.Quantite) as Total
    FROM Table1, Table2, Table3
    WHERE Table1.Produit = Table2.Produit
    AND Table1.Produit = Table3.Produit
    GROUP BY Table1.Produit, Table2.Produit, Table3.Produit
    voir le LEFT JOIN (en Paradox jamais testé)

    ou la Solution de TryExceptEnd qui fonctionne, je l'ai déjà utilisé et je viens de le tester au cas où, à l'instant ...

    Et pour le distinct, cela me semble bizarre, cela devrait être un SUM aussi non ?

    @franck SEFIC , ce n'est pas l'union qui pose problème mais les requêtes imbriquées
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #24
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut ok
    d'accord je vais essayer avec ça j'espère que ça va marcher

  5. #25
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut hy
    slt j'ai essayer avec la solution de shailtrol mais apparement ça veut pas marcher avec moi
    au moment où j'active le querry ça marche il me renvoi la valeur TRUE mais j'obtien aucun résultat pour l'exéctuition de la requête
    c vide

  6. #26
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 151
    Par défaut
    Si le resultat est vide, c'est que aucun produit ne figure dans les trois tables, essaye un LEFT JOIN
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #27
    Membre très actif Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Par défaut
    Refait le fichier texte avec cette requette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Select  produit, sum(quantité) SQUA
    From table1
    Group by  Produit
    UNION ALL
    Select  produit, sum(quantité) SQUA
    From table2
    Group by  Produit
    UNION ALL
    Select  produit, sum(quantité) SQUA
    From table3
    Group by  Produit
    ...et met celle-ci dans ton TQuery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT produit, SUM(squa)
    FROM "LesTables.sql"
    GROUP BY Produit

  8. #28
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 21
    Par défaut Bonjour
    salut à tous
    merci beaucoup vous m'avez été d'une grande aide
    la solution de tryexceptend a marché donc mon sujet est résolu
    merci encore

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Delphi 7] Requête SQL
    Par Hurin dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2008, 11h23
  2. Requête sql avec mysql sous delphi
    Par colfire_dev dans le forum Bases de données
    Réponses: 37
    Dernier message: 07/01/2008, 11h56
  3. Requête SQL : Jointure sur 3 tables - Bd Access 1997 & Delphi 7
    Par Didier100 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/12/2007, 10h57
  4. problème de syntaxe delphi pour une requête sql
    Par socooooool dans le forum Bases de données
    Réponses: 12
    Dernier message: 07/07/2006, 17h53

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