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

Développement SQL Server Discussion :

Dernière date de connexion des comptes actifs


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Points : 36
    Points
    36
    Par défaut Dernière date de connexion des comptes actifs
    Bonjour,
    j'au une table qui enregistre les accès a une application,je dois a chaque fois faire un contrôle des comptes ,pour identifier les comptes non utilisés et récupérer les licences affectées aux gens.
    la table contient l'historique des accès de chaque compte:

    Nom : Capture.JPG
Affichages : 569
Taille : 29,7 Ko

    je veux ecrire une requete qui me donne la dernière connexion de chaque compte,comme le résultat suivant
    Nom : Capture1.JPG
Affichages : 556
Taille : 16,4 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  T1.[User] as 'User Name ',
    case T1.Statut 
    when  -1 then 'Actif'
    when '' then 'No Actif'
    end as 'Login'
    ,  T0.dateConnexion,
     FROM table1 T0 
     INNER JOIN table2 T1 ON T0.ID = T1.ID AND T1.Type=1 
     where T1.Statut=-1
     order by T0.dateConnexion desc
    j'essaie d'utiliser TOP 1 mais ca ne marche pas.
    merci bcp pour votre aide

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 788
    Points
    30 788
    Par défaut
    Pour résoudre cette question, rien de plus compliqué qu'un regroupement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT  T1.[User]   as 'User Name '
        ,   'Actif'     as 'Login'
        ,   MAX(T0.dateConnexion)   as date_Connexion
    FROM    table1 T0 
        INNER JOIN 
            table2 T1 
            ON  T0.ID = T1.ID 
            AND T1.Type=1 
    where   T1.Statut=-1
    group by T1.[User]
    order by date_Connexion desc
    ;
    Si d'autres colonnes sont à retourner, c'est un petit peu plus complexe
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    Bonjour ,
    Merci pour votre réponse,mais j'ai un message d'erreur,je ne peux pas faire un order by date_connexion vu que j'utilise la fonction MAX sur ce champ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg 8127, Level 16, State 1, Line 7
    Column "date_connexion " is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.
    quand j'ajoute le champs date_connexion au group by cela ne donne pas le résultat souhaité ,je souhaite avoir pour chaque compte la dernière connexion (une seul ligne).

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 788
    Points
    30 788
    Par défaut
    Et avec order by MAX(T0.dateConnexion) ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    OUIi c'est bon maintenant ça marche merci bcp

Discussions similaires

  1. [XL-2007] Ecrire des données en tenant compte des filtres actifs
    Par clao260 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/12/2012, 20h13
  2. Réponses: 7
    Dernier message: 03/05/2012, 16h10
  3. Requête Affichage Des Dernières Données pour une Dernière Date
    Par Dr_No dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 22/10/2009, 18h48
  4. Date d'expiration des comptes AD
    Par nord dans le forum VBScript
    Réponses: 2
    Dernier message: 27/04/2009, 20h18
  5. [11g] Date d'expiration des comptes utilisateurs
    Par AyaGizmo dans le forum Administration
    Réponses: 2
    Dernier message: 13/02/2009, 17h56

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