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

MS SQL Server Discussion :

Max() et inner join


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut Max() et inner join
    Bonjour à tous,

    j'ai une petite question concernant la fonction max(). Voici un extrait de ma table MIETVERTRAEGE:

    VERTRAGSNUMMER | MVANUMMER | KFZExchangeNo | BASENR
    100493 | 10054 | 1 | 100493
    200000007 | 10002 | 2 | 100493
    200000008 | 10054 | 3 | 100493
    200000016 | 10010 | 4 | 100493

    je cherche à récupérer juste le MVANUMMER de la dernière ligne (10010), c'est à dire celle du maximum de KFZExchangeNo

    lorsque je fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select
    MV.VERTRAGSNUMMER,
    MV.MVANUMMER,
    MAX(MV.KFZExchangeNo)
    FROM MIETVERTRAEGE MV
    WHERE MV.KFZChangeGroupID=8
    GROUP BY MV.VERTRAGSNUMMER, MV.MVANUMMER
    il me renvoie toutes les 4 lignes :-(

    une idée ?

    D'avance merci !

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2008
    Messages : 699
    Par défaut
    regarder comment fonctionne les INNER APPLY et les OUTER APPLY moi j'utilise ça quand je dois le faire

    sinon tu as aussi les requêtes imbriquées

  3. #3
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT
    MV.VERTRAGSNUMMER,
    MV.MVANUMMER,
    MAX(MV.KFZExchangeNo) OVER(PARTITION BY 0)
    FROM MIETVERTRAEGE MV
    WHERE MV.KFZChangeGroupID=8
    GROUP BY MV.VERTRAGSNUMMER, MV.MVANUMMER

  4. #4
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut
    Bonjour à vous deux,

    @Donpi: merci, je vais regarder ca
    @iberserk : il me dit que MIETVERTRAEGE.KFZExchangeNo doit être inclus dans la clause GROUP BY (si j'enlève le OVER(PARTITION BY 0) pas d'erreur, il me renvoie les 4 lignes)

    merci !

  5. #5
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Pardon je n'ai pas enlevé votre GROUP BY...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT DISTINCT 
    MV.VERTRAGSNUMMER,
    MV.MVANUMMER,
    MAX(MV.KFZExchangeNo) OVER(PARTITION BY 0)
    FROM MIETVERTRAEGE MV
    WHERE MV.KFZChangeGroupID=8

  6. #6
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut
    euh pardon mais je ne comprends pas, est-ce que votre requête doit renvoyer seulement la ligne :
    200000016 10010

    ?

    car il me renvoie :
    VERTRAGSNUMMER MVANUMMER 3 N/A
    100493 10054 4
    200000007 10002 4
    200000008 10054 4
    200000016 10010 4

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

Discussions similaires

  1. Performance versus INNER JOIN et MAX
    Par Griswold dans le forum Développement
    Réponses: 1
    Dernier message: 27/08/2010, 19h41
  2. Mysql Inner join
    Par ..:: Atchoum ::.. dans le forum Requêtes
    Réponses: 3
    Dernier message: 25/10/2007, 12h21
  3. [ requeste sql ]INNER JOIN / OUTER JOIN
    Par hocinema dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/04/2004, 21h28
  4. Erreur lors d'une requete INNER JOIN
    Par k-lendos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/03/2004, 15h09
  5. Inner Join & Select
    Par bakaneko dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/02/2004, 10h48

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