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 :

[TQuery] Requête somme entre deux dates


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut [TQuery] Requête somme entre deux dates
    je reexplique voila par exemple jai troi journaux ,plusieurs ville,aujourduhui jai fait la livraison dans toutes les villes et jai calculer le total de chaque journal .

    demain je fait la meme chose ect.........

    apres chaque fin de semaine je fait le total globalde la somme entre de date chaque journal par exemple le journal parisien jadditionne le total du lundi plus le totale du mardi plus le mercredi ect.........pour la ville marselle .


    jai fait une requete mais il me manque quelque chose que jignore et jaimerai aprendre svp

    jai fait sa :

    select * fron Table_dispatch where (Ville=:E1) and (between date=:E2 and date2=:E3)

    la somme avec sql je ne sais pas la faire et aussi je sais que la syntaxe est fausse si vous pouvez me la corriger svp


    merci

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    pour te répondre correctement, il faudrait déjà connaitre la structure de ta table ainsi que ton sgbd. mais déjà ta formulation du BETWEEN n'est pas bonne.
    sur le site tu as d'excellents cours sur les bases de données,ainsi que sur le langage sql

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    mes tables avec paradox justilise Tquery pour calculer les sommes

    je texplique il ya 9 colonnes dans la table come suit :

    Ville Date parisien quotidien le soir le figaro ......................ect



    la ou il ya les journaux jinsert les quantiter livrees de la journee et je calcule le montant de chaque journal apres jarchive a la fin de la semaine jaimerai calculer les taux de chaque journal (somme) ou bien entre deux date



    merci

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    je n'utilise pas paradox, mais une requête de ce genre devrait faire l'affaire
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT
        SUM(le_parisien) as somme_parisien,
        SUM(le_figaro) as somme_figaro,
        SUM(le_soir) as somme_soir,
        SUM(le_quotidien) as somme_quotidien,
        SUM(autre_champ) as somme_autre_champ
      FROM
        Table_dispatch
      WHERE
        (champ_date BETWEEN :param_date1 AND :param_date2)
        AND
        (champ_ville = :param_ville)
    ;
    param_date1, param_date2 désignent respectivement la date de début et de fin pour la période voulue.
    param_ville désigne la ville concernée.

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    je vais le tester et je te rend la reponse


    merci

  6. #6
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    voila ce que jai fait ta requete ma donner une idee donc jai changer le calcul des sommes de chaque fin de journer par sa :


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select sum(le_figaro) from Table_dispatch

    mais je ne sais pas comment afficher le resultat sur une dbedit qui as le datafield total



    merci

  7. #7
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    tu pourrais modifier ta requête comme ceci:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(le_figaro) AS total FROM Table_dispatch
    puis lier le TQuery correspondant à cette requête à un Datasource, puis à ton DBEDit avec la propriété datafield à total.
    ps: la requête n'effectue aucun filtre sur les dates, ce qui implique qu'elle fera la somme de toutes les colonnes le_figaro se trouvant dans la table

  8. #8
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    est ce que ceci est juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm3.Button13Click(Sender: TObject);
    var requete : string;
    begin
    requete := 'SELECT SUM(X1) AS Total FROM  Table_journal ' ;
    query1.SQL.Clear;
    query1.SQL.Add(requete);
    query1.Prepare;
    query1.ExecSQL;
    query1.Close;
    est ce qu'il m'affiche directement le résultat dans le dbedit une fois que son datafield est total et datasource à datasource2

    mais il m'affiche le message suivant

    type mismatch

    info: j'ai déclarer mes champ de type alphanumeric est ce que je dois changer le type en numeric ou bien integer sachant que mes table sont en paradox?

    merci

  9. #9
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    juste deux modifications
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm3.Button13Click(Sender: TObject);
    var requete : string;
    begin
    requete := 'SELECT SUM(X1) AS Total FROM  Table_journal ' ;
    query1.SQL.Clear;
    query1.SQL.Add(requete);
    query1.Prepare;
    //query1.ExecSQL;
    query1.Open;
    //query1.Close;
    end;
    ExecSQL s'utilise pour des requêtes ACTION, genre UPDATE, DELETE etc. pour les requêtes SELECT, il faut utiliser la méthode Open pour ouvrir le jeu de données et ne pas le refermer avec la méthode Close tant que tu désires accéder à ses données !!!
    voilà

  10. #10
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    merci je vais les corriger et je te rend la reponse

  11. #11
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par delphino7 Voir le message
    mais il m'affiche le message suivant

    type mismatch

    info: j'ai déclarer mes champ de type alphanumeric est ce que je dois changer le type en numeric ou bien integer sachant que mes table sont en paradox?
    le champs X1 est il alphanumérique ?
    étant donné que la fonction SUM effectue une opération arithmétique, le champs X1 doit être de type numérique (entier, réel, etc.)

  12. #12
    Membre régulier Avatar de saidus
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47

    Informations forums :
    Inscription : Octobre 2004
    Messages : 165
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par evarisnea Voir le message
    juste deux modifications
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm3.Button13Click(Sender: TObject);
    var requete : string;
    begin
    requete := 'SELECT SUM(X1) AS Total FROM  Table_journal ' ;
    query1.SQL.Clear;
    query1.SQL.Add(requete);
    query1.Prepare;
    //query1.ExecSQL;
    query1.Open;
    //query1.Close;
    end;
    ExecSQL s'utilise pour des requêtes ACTION, genre UPDATE, DELETE etc. pour les requêtes SELECT, il faut utiliser la méthode Open pour ouvrir le jeu de données et ne pas le refermer avec la méthode Close tant que tu désires accéder à ses données !!!
    voilà
    je prefere encore ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TForm3.Button13Click(Sender: TObject);
    var requete : string;
    begin
    requete := 'SELECT SUM(X1) AS Total FROM  Table_journal ' ;
    query1.SQL.Close;
    query1.SQL.Clear;
    query1.SQL.Add(requete);
    query1.Prepare;
    //query1.ExecSQL;
    query1.Open;
    //query1.Close;
    end;

  13. #13
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    +1 @saidus
    effectivement, il faut penser à fermer le jeu de données avant de le rouvrir

  14. #14
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    ok les gas je vais teste sa et je vous rend le resultat merci

  15. #15
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    sa marche tres bien es quil est possible denregistrer le total avec lenrgistrement calculer avec cette methode si oui comment ?

  16. #16
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    je click sur resolu et jouvre une autre discution pour cette question de sauvagrde


    merci les gas

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

Discussions similaires

  1. [XL-2013] Calcule la somme entre deux dates en condition sur 6 mois
    Par undo74 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/07/2014, 16h30
  2. [WD10] caclcul d'une somme entre deux date
    Par fokher dans le forum WinDev
    Réponses: 1
    Dernier message: 25/07/2013, 10h36
  3. Somme entre deux dates
    Par biquet52 dans le forum QlikView
    Réponses: 3
    Dernier message: 18/06/2012, 17h04
  4. [XL-2007] Somme entre deux dates (période)
    Par Olivm dans le forum Excel
    Réponses: 4
    Dernier message: 16/03/2011, 09h15
  5. Calcul d'une somme entre deux dates
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/03/2010, 22h48

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