|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 96 ![]() |
Bonjour les amis,
Je possède une table comprenant des informations brutes dont certaines se répètent, en fait il s’agit d’une table qui englobe l’historique de données qui ont défilées par rapport à une information bien précise (le numéro Tel), je m’explique : Ci-dessous la table table_historique que je viens de citer : N°| |Nom| |Tel| |Adresse| |Date_maj| 1| Alain| 0633100000| paris| 01/02/2011 2| Alain| 0633100000| marseille| 02/02/2011 3| Marc| 0633100010| paris| 10/02/2011 4| Jully| 0633100010| paris| 15/02/2011 5| Brad| 0633100000| lyon| 20/02/2011 6| Michel| 0633100010| madrid| 25/02/2011 Comme vous pouvez le constater dans cet exemple, il y a 2 nuemro de Tel qui ont changé de main suivant des dates de Mise à jour (Date_maj) bien définies, en réalité cet exemple doit permettre de suivre l’allocation de tel ou tel numéro de Tel et à quelle personne il a appartenu et à quelle date. Ma question est la suivante : Depuis une requête Sql, comment peut-on agir si on voulait faire ressortir par exemple la dernière mise à jour ayant été introduite sur la table suivant une date bien précise ? Exemple : - les dernières informations ayant été introduites jusqu’au 11/02/2011 fera ressortir les lignes 2 et 3 - les dernières informations ayant été introduites jusqu’au 18/02/2011 fera ressortir les lignes 2 et 4 - les dernières informations ayant été introduites jusqu’au 22/02/2011 fera ressortir les lignes 4 et 5 - les dernières informations ayant été introduites jusqu’au 26/02/2011 fera ressortir les lignes 5 et 6 Voilà j’espère que c’est assez clair. Je vous remercie pour votre aide si précieuse Merci les amis |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Code :
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Code :
|
||
|
|
10
|
|
|
#4 | ||
![]() ![]() |
Une petite simplification par rapport au code de mnitu :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#5 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 739 ![]() |
Petite question,
J'aurais utilisé ceci : Code :
First_Value(Num) Over(Partition BY Tel ORDER BY Dat_Maj DESC) AS Num, Code :
Max(Num) Keep (Dense_Rank Last ORDER BY Dat_Maj) AS Num, Il y a t il une différence fondamentale entre les deux syntaxes ? Une préférable à l'autre ?
__________________
Je ne réponds pas aux questions techniques par MP, le forum est là pour cela. La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber. (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant |
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Dans votre exemple:
1) C'est une fonction analytique ou de fenêtrage 2) C’est une fonction d’agrégation Testez les deux et vous allez mieux comprendre les différences. |
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 739 ![]() |
Je ne peux hélas pas tester n'ayant pas accès à une BDD actuellement.
Cependant, je viens de saisir la petite subtilité qui m'échappait et je me rend compte que j'utilisais les first_value en tant que fonction d'aggrégat m'obligeant ainsi à ajouter un DISTINCT pas idéal niveau perf. C'était plus par défaut qu'autre chose vu que je ne connaissais pas la syntaxe avec KEEP. Merci à vous.
__________________
Je ne réponds pas aux questions techniques par MP, le forum est là pour cela. La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber. (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant |
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2007 Messages : 96 ![]() |
Merci les amis,
pour ma part la réponse de mnitu m'a beaucoup aidé merci encore |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com