Requête SQL [WD10]

Le
wd_newbie
Dsol si ma requte est basique mais je me prends la tte !!

Un truc tout bte , soit une table "Membres" et une table
"Abonnements" lies par un numero de membre. (liaison 1;n)

dans la table abonnements, je peux avoir plusieur fois le mme numero
de membre si il a renouvele plusieurs fois son abo.

nmembre / date renouvellement / date echeance

Je voudrai selectionner tous les membres contenus dans ma table
membres et avec seulement le dernier renouvellement d'abonnement
et c'est la que je sche. Je remene toutes les lignes du fichier
abonnement, et donc j'ai pleins de doublons


nmembre / nommembre/ prenomMembre / date renouvellement / date
echeance


Je pense recherche mes membres + abonnement et trier par date de
renouvellement pour ne garder que le plus rcent, mais je n'arrive pas
a ne garder qu'une seule ligne par membre. j'ai essay avec des SELECT
DISTINCT(nummembre) , mais il me retourne toujours les 2-3 lignes pour
un seul membre.

Une ide ?

Olivier
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
API
Le #14653241
Personnellement j'aurai ajouter un flag pour faire simple, lequel est
coché au dernier abonnement et requête sur les flags cochés
Pierre BOUSQUET
Le #14653231
un truc de ce genre peut-être :

SELECT Membres.nom, ab.date_abonnement
FROM Membres
LEFT JOIN (SELECT cle_membre, MAX(date_abonnement) as date_abonnement
FROM Abonnements) ab ON ab.cle_membre=Membres.cle_membre

wd_newbie a couché sur son écran :
Désolé si ma requête est basique ... mais je me prends la tête !!

Un truc tout bête , soit une table "Membres" et une table
"Abonnements" liées par un numero de membre. (liaison 1;n)

dans la table abonnements, je peux avoir plusieur fois le même numero
de membre si il a renouvele plusieurs fois son abo.

n°membre / date renouvellement / date echeance

Je voudrai selectionner tous les membres contenus dans ma table
membres et avec seulement le dernier renouvellement d'abonnement ...
et c'est la que je sèche. Je remene toutes les lignes du fichier
abonnement, et donc j'ai pleins de doublons ...


n°membre / nommembre/ prenomMembre / date renouvellement / date
echeance


Je pense recherche mes membres + abonnement et trier par date de
renouvellement pour ne garder que le plus récent, mais je n'arrive pas
a ne garder qu'une seule ligne par membre. j'ai essayé avec des SELECT
DISTINCT(nummembre) , mais il me retourne toujours les 2-3 lignes pour
un seul membre.

Une idée ?

Olivier



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
wd_newbie
Le #14653221
On 28 mar, 14:07, Pierre BOUSQUET
un truc de ce genre peut-être :

SELECT Membres.nom, ab.date_abonnement
FROM Membres
LEFT JOIN (SELECT cle_membre, MAX(date_abonnement) as date_abonnement
FROM Abonnements) ab ON ab.cle_membre=Membres.cle_membre



et non !! somme toute , j'ai simulé la requete avec des autres
fichiers sous WD ( mon problème était sur des fichiers Access que je
dois importer ) et pour ce problème , enfin c'était plus simple que je
pensais , j'étais parti dans des trucs pas croyables ... la solution :

SELECT nommembre, PrenomMembre,refmembre , max(dateEcheance ) as
dDate_fin
FROM wmembres,wabo
WHERE wmembres.NoMembre = wabo.RefMembre
GROUP BY nommembre, PrenomMembre,refmembre
ORDER BY refmembre

merci pour votre aide , le MAX(date_abonnement) m'a remis sur la bonne
piste

Olivier
Pierre BOUSQUET
Le #14653211
parfois on ne pense pas simplement...

wd_newbie vient de nous annoncer :
On 28 mar, 14:07, Pierre BOUSQUET
un truc de ce genre peut-être :

SELECT Membres.nom, ab.date_abonnement
FROM Membres
LEFT JOIN (SELECT cle_membre, MAX(date_abonnement) as date_abonnement
FROM Abonnements) ab ON ab.cle_membre=Membres.cle_membre



et non !! somme toute , j'ai simulé la requete avec des autres
fichiers sous WD ( mon problème était sur des fichiers Access que je
dois importer ) et pour ce problème , enfin c'était plus simple que je
pensais , j'étais parti dans des trucs pas croyables ... la solution :

SELECT nommembre, PrenomMembre,refmembre , max(dateEcheance ) as
dDate_fin
FROM wmembres,wabo
WHERE wmembres.NoMembre = wabo.RefMembre
GROUP BY nommembre, PrenomMembre,refmembre
ORDER BY refmembre

merci pour votre aide , le MAX(date_abonnement) m'a remis sur la bonne
piste

Olivier



--
Pierre BOUSQUET

" Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème. "
Publicité
Poster une réponse
Anonyme