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 :

Order by dans un JOIN [2012]


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Dévelopeur Multi langage
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Dévelopeur Multi langage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 75
    Points
    75
    Par défaut Order by dans un JOIN
    Bonjour,
    J'ai une table que me permet de logger des connexions. Et je cherche à obtenir une table avec le nombre de connexion et la date de la dernière connexion.
    J'étais parti pour faire comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * 
    FROM [dbo].[Log_NB_Connexion]
        JOINT (SELECT TOP 1 * FROM [dbo].Global_Log GL ORDER BY GL.Log_Date DESC)
            on Log_NB_Connexion.SN=GL.SN
    Mais... ca ne marche pas
    "Syntaxe incorrecte vers le mot clé 'ON'."

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    JOINT ?
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  3. #3
    Membre régulier
    Homme Profil pro
    Dévelopeur Multi langage
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Dévelopeur Multi langage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 75
    Points
    75
    Par défaut Trop facile...
    faute de frappe j'ai bien mis JOIN dans SSMS

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    FROM [dbo].[Log_NB_Connexion]
    JOINT (SELECT TOP 1 * FROM [dbo].Global_Log GL ORDER BY GL.Log_Date DESC) AS GL
    on Log_NB_Connexion.SN=GL.SN
    Avec un alias ?
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

  5. #5
    Membre régulier
    Homme Profil pro
    Dévelopeur Multi langage
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Dévelopeur Multi langage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 75
    Points
    75
    Par défaut
    bah j'ai plus d'erreur mais cela ne fait pas ce que je veux
    Alors peut etre que je n'utilise pas la bonne méthode.
    J'ai une table où j'ai 2 colonne SN et nombre de connexion (et donc SN est vue comme un clé primaire, car un SN n'apparait qu'une fois dans cette table), et une autre avec tout l'historique de connexion (donc un SN peut apparaitre plusieurs fois) et comme colonne j'ai SN et Log_date (qui correspond a la date de chaque connexion)
    et en gros je veux avoir une table avec SN Nombre de connexion et Log_date qui doit être la date de la dernière connexion.

    Si quelqu'un a une idée?

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    WITH T1 AS 
    (SELECT SN, MAX(Log_Date) AS Last_LOG_DATE 
     FROM   dbo.Global_Log
     GROUP  BY SN)
    SELECT T.*
    FROM   dbo.Log_NB_Connexion AS T
           JOIN T1   
    	        ON T.Log_Date = T1.Last_LOG_DATE
    			AND T.SN = T1.SN;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    On peut même s'interroger sur l'utilité de la première table...

    La requête directement sur la table d'historique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT 
        SN,
        MAX(LaDate) AS DerniereConnexion,
        COUNT(*) AS NbConnexions
    FROM TableHistorique
    GROUP BY SN

  8. #8
    Membre régulier
    Homme Profil pro
    Dévelopeur Multi langage
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Dévelopeur Multi langage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    WITH T1 AS 
    (SELECT SN, MAX(Log_Date) AS Last_LOG_DATE 
     FROM   dbo.Global_Log
     GROUP  BY SN)
    SELECT T.*
    FROM   dbo.Log_NB_Connexion AS T
           JOIN T1   
    	        ON T.Log_Date = T1.Last_LOG_DATE
    			AND T.SN = T1.SN;
    A +
    J'ai pas de log_Date dans mon Log_NB_Connexion, j'ai uniquement SN et le nombre de connexion

  9. #9
    Membre régulier
    Homme Profil pro
    Dévelopeur Multi langage
    Inscrit en
    Février 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Dévelopeur Multi langage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 10
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    On peut même s'interroger sur l'utilité de la première table...

    La requête directement sur la table d'historique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT 
        SN,
        MAX(LaDate) AS DerniereConnexion,
        COUNT(*) AS NbConnexions
    FROM TableHistorique
    GROUP BY SN
    Ca a l'air de marché... merci

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

Discussions similaires

  1. order by dans un filter?
    Par charleshbo dans le forum Access
    Réponses: 1
    Dernier message: 11/05/2006, 20h01
  2. Erreur "Unknown column" dans un JOIN sous MySQL 5.0
    Par bibiloute dans le forum Requêtes
    Réponses: 5
    Dernier message: 28/04/2006, 09h16
  3. order by dans un curseur
    Par ddmonge dans le forum SQL
    Réponses: 16
    Dernier message: 16/08/2004, 11h24
  4. Problème de Order by dans une requête
    Par showa dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/08/2004, 15h40
  5. ORDER BY dans un ordre inhabituel
    Par Riam dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2003, 13h29

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