IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Calcul de date immédiatement inférieure à la dernière date connue


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Calcul de date immédiatement inférieure à la dernière date connue
    Bonjour à tous ,

    N’étant pas spécialiste SQL je vous présente le problème auquel je suis confronté et que je n’arrive pas à résoudre :

    J'ai une table EMPLOI qui comporte les champs suivants :

    NOM
    PRENOM
    DATE_EFFET
    LIEU_TRAVAIL

    A chaque LIEU_TRAVAIL occupé correspond une DATE_EFFET.

    Je dois extraire l'avant dernière DATE_EFFET qui précède la dernière DATE_EFFET connue.

    Merci d'avance pour votre aide.
    Patrick

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Bonjour

    Je passerais par une sous-requête déterminant la dernière date, et la requête principale recherchant la date max inférieure à la date max provenant de cette sous-requête

    sous-requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT LIEU_TRAVAIL, MAX(date_effect) as MAXI
    FROM Emploi
    GROUP BY LIEU_TRAVAIL
    Requête principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT LIEU_TRAVAIL, MAX(date_effect) as MAXI
    FROM Emploi
        INNER JOIN (sous-requête) AS sous_requete ON sous_requete.LIEU_TRAVAIL = Emploi.LIEU_TRAVAIL
    WHERE Emploi.date_effect < sous_requete.maxi
    GROUP BY Emploi.LIEU_TRAVAIL
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Vous ne nous indiquez pas votre SGBD... Quel est-il ?
    En fonction de ça, on peut éventuellement passer par des fonctions de fenêtrage.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Bonjour ,

    Merci pour vos retours.
    La base sur laquelle je travaille est une base Oracle sur laquelle je requête avec PL/SQL

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Donc, la requête suivante doit pouvoir faire ce que vous souhaitez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT LIEU_TRAVAIL, date_effet
    FROM (
        SELECT LIEU_TRAVAIL, date_effet, RANK() OVER(PARTITION BY LIEU_TRAVAIL ORDER BY date_effet DESC) AS rang
        FROM Emploi
    ) AS t
    WHERE rang = 2
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Merci de votre aide !
    J'ai pu m'en sortir !

    Bien cordialement
    Patrick

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA]Coment afficher la date de l'année dernière
    Par gyzmo5 dans le forum Access
    Réponses: 4
    Dernier message: 23/01/2006, 15h11
  2. Update par date immédiatement inférieur
    Par MOLLET dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/11/2005, 19h05
  3. [ORACLE]20 dernières dates de facturation
    Par Frank dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/10/2005, 10h06
  4. Date saisie inférieure date du jour
    Par baillador dans le forum ASP
    Réponses: 3
    Dernier message: 08/06/2005, 16h29
  5. calcule du nombre de jours entre 2 dates
    Par nazimb dans le forum ASP
    Réponses: 4
    Dernier message: 28/09/2004, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo