Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
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 22/02/2007, 12h27   #1
Futur Membre du Club
 
Inscription : novembre 2002
Messages : 55
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 55
Points : 19
Points : 19
Par défaut requete renvoie produit cartesien

Bonjour,
j'ai un souci avec une requete pourtant très simple dans une base postgres (je fais ma requete dans PGAdmin) :
j'ai une table CA : (la clé primaire est sur type, date et vendeur)
type date vendeur montant
1001 2007-02-22 1 10
1001 2007-02-22 2 11
1002 2007-02-22 1 1
1002 2007-02-22 2 10

et une table PRELEV : (la clé primaire est sur type, date et vendeur)
type datecons vendeur montant
1001 2007-02-22 1 1
1001 2007-02-22 2 2
1002 2007-02-22 1 10
1002 2007-02-22 2 12

je veux simplement faire une requete qui m'affiche, pour chaque type et chaque date, la somme du montant de la table CA et la somme du montant de la table PRELEV :
type datecons ca prelev
1001 2007-02-22 21 3
1002 2007-02-22 11 22

ma requete est la suivante :
Code :
1
2
3
4
5
6
7
 
SELECT c.type, c.datecons, sum(c.montant), sum(p.montant)
FROM ca c, prelev p
WHERE c.type = p.type
AND c.datecons = '2007-02-22'
AND c.datecons = p.datecons
GROUP BY c.type, c.datecons;
le résultat renvoyé ne correspond à rien (enfin si, il semble être le produit cartésien des montant avec le nombre de ligne pour chaque type...)
Help please!!!
78alex78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 12h44   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

il faut que ta requête utilise dans sa clause FROM deux sous-requêtes qui font les totaux pour chaque table, avant de totaliser sur les deux tables.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 13h31   #3
Futur Membre du Club
 
Inscription : novembre 2002
Messages : 55
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 55
Points : 19
Points : 19
tu peux m'expliquer?? je n'ai pas bien compris ton message...
78alex78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 14h05   #4
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Dans chaque table, pour un type et une date donnés, tu as plusieurs lignes (une par vendeur). Il faut donc que tu fasses un total par type/date dans chaque table avant de faire le total des deux tables.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2007, 15h43   #5
Futur Membre du Club
 
Inscription : novembre 2002
Messages : 55
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 55
Points : 19
Points : 19
le problème, c'est que ma requete est utilisée dans un programme delphi; est-ce qu'il n'y a pas une solution pour tout faire dans la meme requete? et si oui, je veux bien une ébauche de la requete parce que là, je sèche (ça fait 1 journée que je suis dessus et je sature).
merci
78alex78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web