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

Langage SQL Discussion :

Probleme de sum dans une requete SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2009
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Par défaut Probleme de sum dans une requete SQL
    Bonjour à tous,

    j'ai un problème tout bête dans une requête SQL mais je bute dessus depuis hier et je craque un peu :

    Je veux sortir un grand livre d'écritures comptables pour une période et faire apparaitre le solde (a nouveau) d'avant période.

    Je fais saisir différents paramètres : compte de debut, compte de fin, date début, date de fin ...

    Ma requete ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Select   No_compte, nom, date_ecriture, piece, no_document, designation, debit, credit,
     
    (select sum(debit) 
      from fic_ecriture 
      where date_ecriture < @datedebut) as 'a nouveau debit',
     
    (select sum(credit) 
      from fic_ecriture 
      where date_ecriture < @datedebut) as 'a nouveau credit'
     
    from fic_ecriture 
    where date_ecriture >= @datedebut 
      and date_ecriture <= @datefin
    puis j'affiche :
    a nouveau débit 12000 a nouveau crédit 500 solde 11500

    date pièce document désignation débit crédit
    21/01/09 123456 fact01 facture 1 120 0
    23/02/09 456789 fact 02 facture 2 300 0

    etc ...

    Cela marche très bien lorsqu'il existe des écritures dans la fourchette de date demandée . Je récupère sur chacune des lignes mon a nouveau débit et a nouveau crédit que j'affiche en haut. mais dans le cas ou je demande une période dans laquelle il n'y a pas d'écritures, ma requête ne me retourne aucun résultat, aucune ligne (alors que je voudrais récupérer mes valeurs d' a nouveau débit et d' a nouveau crédit). Comment puis je faire pour récupérer au moins une ligne avec mes a nouveaux ?

    Pour info je bosse sous sqlserver 2005.

    Merci d'avance de votre aide

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Vous pouvez essayer ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    With Past_Ecriture (Deb, Cre) AS
    (
    SELECT sum(debit), sum(credit)
      FROM fic_ecriture 
     WHERE date_ecriture < @datedebut
    )
    SELECT FE1.No_compte, FE1.nom, FE1.date_ecriture, FE1.piece, FE1.no_document,
           FE1.designation, FE1.debit, FE1.credit,
           FE2.Deb AS 'a nouveau debit', FE2.Cre AS 'a nouveau credit'
      FROM Past_Ecriture AS FE2
           LEFT OUTER JOIN fic_ecriture AS FE1
             ON FE1.date_ecriture >= @datedebut 
            AND FE1.date_ecriture <= @datefin;

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    Les conditions sur FE1.date_ecriture ne devraient-elles pas figurer au niveau de la jointure?

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Si complètement, j'édite !

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    Bonsoir,

    Ce morceau de code permet de manipuler une table temporaire dans la requete ?

    WITH Past_Ecriture (Deb, Cre) AS
    (
    SELECT sum(debit), sum(credit)
    FROM fic_ecriture
    WHERE date_ecriture < @datedebut
    )

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    En quelque sorte oui, vous trouverez une définition des CTE ici : http://sqlpro.developpez.com/cours/s...cursives/#LIII

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

Discussions similaires

  1. [MySQL] probleme de syntaxe dans une requete sql
    Par nico le noob dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/08/2010, 02h10
  2. Probleme d'encodage dans une requete SQL
    Par kedare dans le forum Général Python
    Réponses: 1
    Dernier message: 25/03/2009, 17h52
  3. [Access] Probleme de count dans une requete sql
    Par castelligreg dans le forum Langage SQL
    Réponses: 6
    Dernier message: 14/04/2006, 16h20
  4. [sql]Probleme de count dans une requete sql (sous access)
    Par castelligreg dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/04/2006, 16h06
  5. [MySQL] probleme de syntaxe dans une requete sql
    Par jeanfrancois dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/03/2006, 10h54

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