Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 25/06/2008, 11h46   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 35
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 35
Points : 11
Points : 11
Par défaut Sélection du dernier log

Bonjour tout le monde,
voila je me galère carrément sur une requête:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SELECT
 'LOA' AS "Application",
 'LOANSAT' AS "Sub-application",
  UPPER(SUBSTR(USR_CDE_LOGIN,1,INSTR(USR_CDE_LOGIN,'.')-1)) AS "User First Name",
  UPPER(SUBSTR(USR_CDE_LOGIN,INSTR(USR_CDE_LOGIN,'.')+1)) AS "User Last Name",
  USR_CDE_LOGIN AS "User Login",
  '' AS "Department",
  '' AS "Region",
  USL_TSP_LOG AS "Last connection",
  NULL AS "Last pwd change",
  NULL AS "Info"
FROM TSAT_USER INNER JOIN CLR_TBL_SAT_USAGE_LOG ON TSAT_USER.USR_PID_USER = CLR_TBL_SAT_USAGE_LOG.USL_PID_USER_LOGGED
WHERE TSAT_USER.USR_IND_ACTIVE='Y' AND CLR_TBL_SAT_USAGE_LOG.USL_EVT_MNEMO_ID='LOGIN'
Alors j'explique un peu mon problème. La requete que je viens de coller marche trés bien. Cependant, la table CLR_TBL_SAT_USAGE_LOG contient les logs des users sur les 2 derniers mois.

Ce que je voudrais faire c'est afficher seulement pour chaque utilisateur (TSAT_USER.USR_PID_USER) sont dernier log, ce qui correspond au champs CLR_TBL_SAT_USAGE_LOG.USL_TSP_LOG.

Quelqu'un pourrait il m'aider un petit coup please?

Merci
clad523 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 12h15   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
et t'as une date ou un moyen de voir l'ordre de génération des logs ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 13h18   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 35
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 35
Points : 11
Points : 11
Oui, le champ que je veux récupérer est en fait la date de login, donc le champ CLR_TBL_SAT_USAGE_LOG.USL_TSP_LOG contient une date.

Seulement, comme il y a l'historique des connexions de tous les utilisateurs, je voudrais seulement récupérer la date de derniere connexion pour chaque utilisateur.
clad523 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 13h45   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Regarde du coté de HAVING ou MAX en fonction analytique... fais une recherche dans le forum ça a régulièrement été fait
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 14h13   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 35
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 35
Points : 11
Points : 11
a y est, j'ai la réponse. La solution passait par un MAX:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
SELECT
 'LOA' AS "Application",
 'LOANSAT' AS "Sub-application",
  UPPER(SUBSTR(USR_CDE_LOGIN,1,INSTR(USR_CDE_LOGIN,'.')-1)) AS "User First Name",
  UPPER(SUBSTR(USR_CDE_LOGIN,INSTR(USR_CDE_LOGIN,'.')+1)) AS "User Last Name",
  USR_CDE_LOGIN AS "User Login",
  '' AS "Department",
  '' AS "Region",
  USL_TSP_LOG AS "Last connection",
  NULL AS "Last pwd change",
  NULL AS "Info"
FROM TSAT_USER INNER JOIN CLR_TBL_SAT_USAGE_LOG ON TSAT_USER.USR_PID_USER = CLR_TBL_SAT_USAGE_LOG.USL_PID_USER_LOGGED
WHERE TSAT_USER.USR_IND_ACTIVE='Y' AND CLR_TBL_SAT_USAGE_LOG.USL_EVT_MNEMO_ID='LOGIN' AND 
USL_TSP_LOG = (SELECT  MAX(USL_TSP_LOG) FROM CLR_TBL_SAT_USAGE_LOG WHERE TSAT_USER.USR_PID_USER = CLR_TBL_SAT_USAGE_LOG.USL_PID_USER_LOGGED )
Merci encore
clad523 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h12.


 
 
 
 
Partenaires

Hébergement Web