Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/11/2011, 14h21   #1
Invité de passage
 
Homme
Développeur Web
Inscription : décembre 2008
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2008
Messages : 5
Points : 1
Points : 1
Par défaut Requête SELECT

* Bonjour, *

J'ai une table contient 3 attributs (idFichier, nomFichier, dateFichier):
je veux faire une sélection du nomFichier WHERE dateFichier est le dernier mais j'ai pas trouvé.

Par exemple j'ai ces deux lignes:
1 | fichie1 | 01/09/2011
2 | fichie2 | 11/11/2011
après l'exécution de la requête il m'affiche "fichie2".

* Merci *
wass878 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 14h26   #2
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 092
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 092
Points : 1 898
Points : 1 898
Bonjour,
Tu as plusieurs possibilités:
1. avec un MAX et une sous-requête: tu cherches les fichiers dont la date est la date MAX()
2. avec une jointure externe ou un EXISTS: tu cherches les fichiers pour lesquels il n'existe pas d'autre fichier avec une date supérieure
3. je ne sais pas, mais il y a surement une troisième possibilité !

Tatayo.
tatayo est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 14h32   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Pas dur :
Code :
1
2
3
4
5
6
7
SELECT nomFichier
FROM la_table
WHERE dateFichier = 
(
  SELECT MAX(dateFichier)
  FROM la_table
)
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/11/2011, 14h40   #4
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 641
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 641
Points : 2 634
Points : 2 634
Citation:
Envoyé par tatayo Voir le message
3. je ne sais pas, mais il y a surement une troisième possibilité !

Tatayo.
Les fonctions de fenêtrages
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 09h02   #5
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 5 352
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 5 352
Points : 9 745
Points : 9 745
Citation:
Envoyé par wass878 Voir le message
J'ai une table contient 3 attributs (idFichier, nomFichier, dateFichier):
je veux faire une séléction du nomFichier where dateFichier est le dernier mais j'ai pas trouvé.

Par exemple j'ai ces deux lignes:
1 | fichie1 | 01/09/2011
2 | fichie2 | 11/11/2011
aprés l'exécution de la requête il m'affiche "fichie2".
Si j'ai bien compris , vous souhaitez quelque chose comme cela :

Code :
1
2
3
4
5
6
7
8
9
SELECT NOMFICHIER, DATEFICHIER
            FROM
              (
                SELECT NOMFICHIER, DATEFICHIER,            
                        ROW_NUMBER() over(ORDER BY DATEFICHIER DESC) DateRowNum
                  FROM theTable        
 
                )
            WHERE DateRowNum = 1;
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 18h10   #6
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
Salut,

Si on veut garder les ex-aequo comme dans la requête de Cinephile, utiliser dense_rank() à la place de row_number().

Sinon pour faire sale et fun (version ne renvoyant qu'une seule ligne par contre), tu peux faire chercher le max de la concaténation de la date au format YYYYMMDD et du fichier, puis prendre la sous chaîne à partir du 9ème caractère .

Sous Oracle :
Code :
1
2
3
 
SELECT substr(max(to_char(datefichier, 'yyyymmdd') || nomfichier), 9)
FROM tatable
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h39.


 
 
 
 
Partenaires

Hébergement Web