Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/12/2011, 19h41   #1
Membre chevronné
 
Avatar de Interruption13h
 
Houari D.Y
Inscription : août 2005
Messages : 600
Détails du profil
Informations personnelles :
Nom : Houari D.Y

Informations forums :
Inscription : août 2005
Messages : 600
Points : 630
Points : 630
Par défaut Fontion fenêtrage (solde caisse)

Salut,

j'ai un petit souci avec une requête qui semblait être simple à faire.

Voila, j'ai une vue qui contient des enregistrement des transactions depuis différentes caisse:
Code :
1
2
3
4
5
 
code_caisse      credit      debit      code_transaction_caisse      balance
  2               500          0                 8                     500
  2               1000         0                 9                     1500
  3               0            100               11                    1400
et je voulais avoir la balance du solde de chaque caisse indépendamment; ie: le résultat voulu:
Code :
1
2
3
4
5
 
code_caisse      credit      debit      code_transaction_caisse      balance
  2               500          0                 8                     500
  2               1000         0                 9                     1500
  3               0            100               11                    100
La requête que je pense être la bonne est celle-ci:

Code :
1
2
3
 
 SELECT code_caisse, credit, debit, code_transaction_caisse, sum(credit - debit) OVER (ORDER BY code_caisse, code_transaction_caisse) AS balance
   FROM transaction_simple_sans_balance;
Hélas, ça me retourne la balance globale comme suit:

Code :
1
2
3
4
5
 
code_caisse      credit      debit      code_transaction_caisse      balance
  2               500          0                 8                     500
  2               1000         0                 9                     1500
  3               0            100               11                    1400  <- normalement ici ça serait plutôt 100
Si quelqu'un puisse m'aider la dessus, parce que

SGBDR: PostgreSQL 9.1


Merci d'avance!
__________________
Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

(Mark TWAIN)
Interruption13h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 20h24   #2
Membre chevronné
 
Avatar de Interruption13h
 
Houari D.Y
Inscription : août 2005
Messages : 600
Détails du profil
Informations personnelles :
Nom : Houari D.Y

Informations forums :
Inscription : août 2005
Messages : 600
Points : 630
Points : 630
J'ai trouvé, je savais pas qu'on peut combiner les deux clauses de fenêtrage ORDER et PARTITION.

Et la requête serai :
Code :
1
2
3
4
5
SELECT code_transaction_caisse, code_caisse, credit, debit , SUM(credit-debit) OVER (PARTITION BY code_caisse ORDER BY code_transaction_caisse) as balance 

FROM transaction_simple_sans_balance 
 ORDER BY code_transaction_caisse;
qui me donne effectivement le résultat voulu!

Merci.
__________________
Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

(Mark TWAIN)
Interruption13h est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h51.


 
 
 
 
Partenaires

Hébergement Web