Accueil > Forum > > > > sélectionner les enregistrements pour la valeur max d'un champ d'une table liée
sélectionner les enregistrements pour la valeur max d'un champ d'une table liée
vendredi 18 novembre 2011 à 14:12:56 |
sélectionner les enregistrements pour la valeur max d'un champ d'une table liée

rlapt
|
Bonjour,
Je souhaite faire une requête SQL à partir d'excel, dans une base Access.
J'ai deux tables liées par des champs d'index :
Table 1 -> Nro Documents
Table 2 -> Rév Documents
Je souhaire récupérer l'ensemble des champs des deux tables avec la totalité des enregistrements de la Table 1 (jointure left join). Ceci uniquement pour la révision maximale du document (Champ "Nro de révision" de la Table 2)
Les deux tables comportent un champ d'index numéro automatique. Ceci m'interdit les forme comme Select table1.*,Table2.* ...
Auriez-vous une solution ?
Petit détail la valeur de la révision est alphanumérique. Peut-on déterminer ma méthode ce comparaison ?
Merci d'avance de prendre du temps à réfléchir à mon problème.
RLAPT
|
|
samedi 19 novembre 2011 à 11:34:27 |
Re : sélectionner les enregistrements pour la valeur max d'un champ d'une table liée

cgandco
|
Bonjour,
Peux tu donner une description de tes deux tables avec plus de détails.
(liste des champs)
Dans ta table2 toutes les révisions d'un même document sont elles enregistrées (*), ou simplement la dernière révision?
(*) dans ce cas, as tu une description du fonctionnement de ta révision car en alpha numérique on peut inventer ce que l'on veut ! par ex : 1,2 ou 1a,1b,2a et même 1a4j,1b5y ...
Bonne journée
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
|
|
mardi 22 novembre 2011 à 10:50:55 |
Re : sélectionner les enregistrements pour la valeur max d'un champ d'une table liée

jopop
|
Salut,
pour ce qui est de la requête il te suffit de passer par un GROUP BY, ex. :
Code sql : SELECT doc.id, doc.titre, MAX(rev.numero)
FROM doc, rev
WHERE doc.id = re.iddoc
GROUP BY doc.id;
Pour ce qui est de la comparaison des révisions alphanum, deux cas :
- les "numéros" de révision suivent l'ordre alphabétique -> rien à faire,
- les "numéros" de révision sont n'importe comment (ce qui n'aurait pas de sens dans le cadre d'une fonctionnalité d'historisation, mais bon) -> tu devras peut-être ajouter une colonne à ta table "rev" qui permettra un ordonnancement plus simple, genre un entier incrémenter, ou une date.
bon PL
|
|
mardi 22 novembre 2011 à 11:32:19 |
Re : sélectionner les enregistrements pour la valeur max d'un champ d'une table liée

cgandco
|
Bonjour,
C'est bien comme requete mais attention si les revisions sont de la forme 1a,1b,2a ...
la version 1a est plus grande que la version 10a il faut donc stocker 01a.
Bonne journée
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
|
|
mardi 22 novembre 2011 à 19:45:26 |
Re : sélectionner les enregistrements pour la valeur max d'un champ d'une table liée

rlapt
|
Bonsoir,
Merci du temps passé pour trouver une solution aux difficultés que je rencontre.
Pour la proposition de Jopop, je n'arrive pas à faire fonctionner le code dans la mesure où comme j'écrivais dans mon premier texte le fait de vouloir récupérer tous les champs interdit l'emploi du group by
Pour ce qui concerne les révisions ; dans l'industrie il est commun d'utiliser des révisions que j'appellerai interne en numérique jusqu'à la commande de où l'on utilise le document, puis en numérique après la commande.
J'ai donc pour un même document une succession de révision du style A0, A1, A2 puis 01, 02, 03 ce qui ne facilite pas le classement.
Merci encore.
RLAPT
|
|
mardi 22 novembre 2011 à 22:16:57 |
Re : sélectionner les enregistrements pour la valeur max d'un champ d'une table liée

cgandco
|
Bonjour,
Comme l'a dit Jojop tu dois ajouter un champ DateRevision (smalldatetime ou entier incrémenté automatiquement) avec comme valeur par défaut getdate().
et ensuite pour récupérer toutes les lignes passer par une table temporaire dans un procedure stockée
Sa requete devient alors (a mettre dans une procedure stockée :
Code sql :
SELECT rev.iddoc, Dater=MAX(rev.DateRevision)
into #tmp
FROM rev
GROUP BY rev.iddoc;
select doc.*,rev.*
from doc,rev,#tmp t
where doc.iddoc = t.iddoc
and rev.iddoc = t.iddoc
and rev.DateRevision = t.Dater
drop table #tmp
Attention dans le champ DateRevision les heures,minutes et secondes doivent être stockées ou alors tu risques d'avoir deux versions avec la même date.
Si tu choisis de mettre un champ entier incrementé, les enregistrements devront vraiment être entrés dans le bon ordre. Plus moyen de les modifier.
Bonne soirée
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
|
|
mercredi 23 novembre 2011 à 01:07:10 |
Re : sélectionner les enregistrements pour la valeur max d'un champ d'une table liée

cgandco
|
OOOPPPSSSS j'ai glissé
mille excuses c'est jopop
Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
|
|
Cette discussion est classée dans : table, valeur, champ, enregistrements, tables
Répondre à ce message
Sujets en rapport avec ce message
Comparaison [ par romainbisson ]
Salut,Je souhaite comparer deux tables A et B ou le champ C existe dans les deux tables, mais je veux que C soit aboslument egal dans les deux tables
Boucler sur deux tables [ par XtazyMushroom ]
Bonjour j'ai un petit probleme pour executer une boucle sur deux tables. Je m'explique J'ai une table 1 et une table 2: Table 1 id(char) valeur 334
Mettre à jour un champ avec un champ d'une autre table [ par fauve ]
Bonjour, Je rencontre un soucis, je souhaite mettre à jour un champ avec celui d'une autre table. En temps normal, je n'ai aucun problème tant que l
Modifier la valeur d'un champ d'une table importé d'une autre table [ par jacfev ]
Bonjour, Je dois modifier la valeur d'un champ d'une table importé d'une autre table. La table prix contient le champ prix. Ce champ doit être modif
Ecrire des champs dans plusieurs tables en un fois avec index [ par jacfev ]
Bojour, Je dois copier des champs d'une table dans 3 autres tables. J'ai une table source nommée devis avec les champs codearticle, designation, prix,
Requete union avec nom de table en variable. [ par cesar94 ]
Bonjour, J'utilise Access 2000 et je souhaiterais creer une requete union dans laquelle les tables a utiliser dependent des parametres entres par l'u
afficher une base [ par lilyy59 ]
Bonjour, J'ai fait un code en cour qui marchait très bien, mais je ne sais pas pourquoi chez moi il ne marche pas. [code=php]$bi = new boxint($connex
Requète SELECT avec INNER JOIN sur plusieurs tables et des cles manquantes [ par bobarman ]
Bonjour, j'ai 5 tables: Une table Fabrications tout en haut, 3 tables filles reliées à cette table Fabrications : Commandes, Formules, ControlesQualit
comparer 2 tables ,recuperer une info [ par bubbledesavon ]
bonjour , je suis desolé de ma demande ,cela doit etre une demande recurente mais je n'est pas trouve sur le forum une reponse a ma question . je vous
Retrouver l'ID d'une clé étrangère sur l'ensemble d'une base Oracle [ par amundain ]
Bonjour à tous, Je me pose une question à laquelle je ne suis pas encore parvenu à trouver de réponse, je me tourne donc vers la communauté... J'uti
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : ORACLE FORMSRE : ORACLE FORMS par csmahicham
Cliquez pour lire la suite par csmahicham
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|