|
| [WD8] PB METHODE REQUETE SQL |
| Débuté par Medor, 12 jan. 2005 17:57 - 4 réponses |
| |
| | | |
|
| |
| Posté le 12 janvier 2005 - 17:57 |
Bonjour
Soit une base avec les fichiers F_CLIENT et F_FACTURE
F_CLIENT est composé des rubriques CL_IDCLEUNIK et CL_RAISONSOC F_FACTURE est compsé des rubriques FA_IDCLEUNIK, FA_DATE et FA_CL_CLEUNIK
Comment faire la requete qui me donne pour chaque CLIENT la FACTURE la plus récente ?
Merci pour vos lumieres.
Stéphane |
| |
| |
| | | |
|
| | |
| |
| Posté le 12 janvier 2005 - 19:02 |
Bonjour,
essaye :
Select F_FACTURE.FA_DATE,F_FACTURE.FA_IDCLEUNIK, F_CLIENT.CL_IDCLEUNIK, F_CLIENT.CL_RAISONSOC From F_FACTURE, F_CLIENT where F_CLIENT.CL_IDCLEUNIK = F_FACTURE.FA_CL_CLEUNIK order by desc F_FACTURE.FA_DATE,F_FACTURE.FA_IDCLEUNIK, F_CLIENT.CL_IDCLEUNIK, F_CLIENT.CL_RAISONSOC
Ensuite il te reste à lire le premier enregistrement et tu auras la dernière facture de ton client, c'est à dire la plus récente.
En espérant t'avoir aidé.
Nico. |
| |
| |
| | | |
|
| | |
| |
| Posté le 12 janvier 2005 - 19:04 |
De loin dans le brouillard, je dirais ceci: select * from f_client,f_facture where fa_date = max(select f2.fa_date from fa_facture as f2 where f2.fa_idcleunik = facture.fa_idcleunik) and facture.fa_cl_cleunik ) f_client.cl_idcleunik
En gros, je sélectionne la facture dont la date est la plus grande pour le client donné. Il faut bien sûr remplacer * par la liste des champs à récupérer.
Frédéric. |
| |
| |
| | | |
|
| | |
| |
| Posté le 13 janvier 2005 - 11:22 |
Merci pour vos réponses, mais le probleme n'est pas d'obtenir la derniere facture d'un client donné (je sais le faire). Ce que je souhaite c'est une requete qui me permette d'obtenir la liste de tous les clients avec leur derniere facture.
Merci de m'indiquer si cette requete est realisable.
@+
Stephane |
| |
| |
| | | |
|
| | |
| |
| Posté le 13 janvier 2005 - 11:43 |
Ma requête renvoie tout les clients avec leur dernière facture, à l'exception des clients qui n'ont pas de facture. Si tu veux tout les clients, même ceux qui n'ont pas de facture, ainsi que la dernière facture pour ceuw qui en ont une, il faut faire un left outer join entre le client et la facture: select * from f_client left outer join f_facture on facture.fa_cl_cleunik = f_client.cl_idcleunik where fa_date = max(select f2.fa_date from fa_facture as f2 where f2.fa_idcleunik = facture.fa_idcleunik) A vérifier, j'ai toujours un peu de mal avec les jointure externes 
Frédéric. |
| |
| |
| | | |
|
| | | | |
| | |
|