|
Iniciado por guest, jul., 01 2005 3:55 PM - 4 respostas |
| |
| | | |
|
| |
Publicado em julho, 01 2005 - 3:55 PM |
Ne peut -on pas faire une requête du genre :
SELECT FACTURE.fact_No,fact_Date FROM FACTURE,REGLER WHERE FACTURE.fact_No=REGLER.fact_No HAVING SUM(regler_Mont)<fact_Totmont
ici FACTURe est une table et REGLER une associaition entre FACTURE et REGLEMENT (0,n === REGLER === 0,n) En fait dans regler il y a tous les règlement pour une facture. En effet, une facture peut être régler en plusieurs fois. Le total de la facture est dans FACTURE avec fact_Totmont
Moi je veux en 1 requète, toutes les factures qui ne sont pas régler totalement. Et je n'obtient aucun résultat alors que j'en ai plein !!!
Merci |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 01 2005 - 4:13 PM |
Petalele a écrit :
Ne peut -on pas faire une requête du genre :
SELECT FACTURE.fact_No,fact_Date FROM FACTURE,REGLER WHERE FACTURE.fact_No=REGLER.fact_No HAVING SUM(regler_Mont)<fact_Totmont
ici FACTURe est une table et REGLER une associaition entre FACTURE et REGLEMENT (0,n === REGLER === 0,n) En fait dans regler il y a tous les règlement pour une facture. En effet, une facture peut être régler en plusieurs fois. Le total de la facture est dans FACTURE avec fact_Totmont
Moi je veux en 1 requète, toutes les factures qui ne sont pas régler totalement. Et je n'obtient aucun résultat alors que j'en ai plein !!!
Merci
doit manquer un group by quelque part ...
SELECT FACTURE.fact_No,fact_Date FROM FACTURE,REGLER WHERE FACTURE.fact_No=REGLER.fact_No GROUP BY FACTURE.fact_No, FACTURE.fact_Date <=== HAVING SUM(regler_Mont) < fact_Totmont
Damien |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 02 2005 - 7:27 PM |
Il faut sélectionner également 'regler_Mont' pour que le SUM fonctionne:
SELECT FACTURE.fact_No, fact_Date, SUM(regler_Mont) FROM FACTURE,REGLER WHERE FACTURE.fact_No=REGLER.fact_No GROUP BY FACTURE.fact_No, FACTURE.fact_Date HAVING SUM(regler_Mont) < fact_Totmont
Christian Potvin Beaulieu Canada
Petalele a écrit : Ne peut -on pas faire une requête du genre :
SELECT FACTURE.fact_No,fact_Date FROM FACTURE,REGLER WHERE FACTURE.fact_No=REGLER.fact_No HAVING SUM(regler_Mont)
ici FACTURe est une table et REGLER une associaition entre FACTURE et REGLEMENT (0,n === REGLER === 0,n) En fait dans regler il y a tous les règlement pour une facture. En effet, une facture peut être régler en plusieurs fois. Le total de la facture est dans FACTURE avec fact_Totmont
Moi je veux en 1 requète, toutes les factures qui ne sont pas régler totalement. Et je n'obtient aucun résultat alors que j'en ai plein !!!
Merci
doit manquer un group by quelque part ... SELECT FACTURE.fact_No,fact_Date FROM FACTURE,REGLER WHERE FACTURE.fact_No=REGLER.fact_No GROUP BY FACTURE.fact_No, FACTURE.fact_Date <=== HAVING SUM(regler_Mont) < fact_Totmont Dami |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 04 2005 - 11:58 AM |
En fait voilà ma re^quête finale :
SELECT FACTURE.fact_No,fact_Date,fact_Totmont,SUM(regler_Mont) AS reglement FROM FACTURE LEFT JOIN REGLER ON (FACTURE.fact_No=REGLER.fact_No) GROUP BY FACTURE.fact_No,fact_Date,fact_Totmont HAVING SUM(regler_Mont)<fact_Totmont ORDER BY fact_Date
Le problème est que j'obtient 52 résultats au lieu de 286.... Je ne voit pas trop d'où peut venir le problème. Le fait de faire un GROUP BY n'interfère pas dans le INNER JOIN ? |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 04 2005 - 11:33 PM |
Bonjour,
Le LEFT JOIN ne tiens pas compte des factures qui n'ont aucun paiement dans le fichier REGLER.
Pour avoir toutes les factures pour lesquelles il y a paiement PARTIEL dans REGLER et toutes celles qui n'ont AUCUN paiement dans REGLER, il faut faire ceci:
SELECT FACTURE.fact_No, fact_Date, fact_Totmont, SUM(regler_Mont) AS reglement FROM FACTURE, REGLER WHERE FACTURE.fact_No = REGLER.fact_No GROUP BY FACTURE.fact_No, fact_Date, fact_Totmont HAVING SUM(regler_Mont) < fact_Totmont UNION ALL SELECT FACTURE.fact_No, fact_Date, fact_Totmont, 0 AS reglement FROM FACTURE WHERE FACTURE.fact_No NOT IN (SELECT DISTINCT REGLER.fact_No FROM REGLER) ORDER BY fact_Date
En espérant que cela va régler ton problème...
Christian Potvin Beaulieu Canada |
| |
| |
| | | |
|
| | | | |
| | |
|