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 :

[MSDE] Comment ecrire la requete adéquate ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Par défaut [MSDE] Comment ecrire la requete adéquate ?
    Bonjour à tous !

    Voilà, j'ai un soucis pour rédiger une requête. Je dispose des enregistrements suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    id	code	type	val
    1	152	P	5
    2	152	P	4
    3	254	P	12
    4	254	P	1
    5	254	P	2
    6	345	M	7
    7	987	M	4
    8	987	M	36
    9	208	P	40
    Je souhaiterai n'obtenir que les dernières lignes (ce qui correspond au max de l'id) pour chaque Code-type. Je devrais alors avoir le résultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    id	code	type	val
    2	152	P	4
    5	254	P	2
    6	345	M	7
    8	987	M	36
    9	208	P	40
    A part le SELECT de départ, j'avoue être dépassé pour le reste
    J'ai essayé de faire des group by, mais sans succès...
    Quelqu'un peut-il m'orienter s'il vous plait ?

    D'avance merci

  2. #2
    Membre chevronné Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Par défaut
    Bonjour,
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT 
        ma_table.*
      FROM
        ma_table 
        inner join (SELECT code, TYPE, MAX(id) AS id FROM ma_table GROUP BY code, TYPE) AS mes_max
    	   ON ma_table.code=mes_max.code AND ma_table.TYPE=mes_max.TYPE AND ma_table.id=mes_max.id

  3. #3
    Membre chevronné Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Par défaut
    Ou encore : (valable pour les versions >= 2003)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT DISTINCT
        FIRST_VALUE (ID) OVER (PARTITION BY CODE, TYPE ORDER BY ID DESC) AS ID,
        code,
        TYPE,
        FIRST_VALUE (val) OVER (PARTITION BY CODE, TYPE ORDER BY ID DESC) AS val		
      FROM
        ma_table

  4. #4
    Membre éclairé Avatar de joefou
    Profil pro
    Inscrit en
    Février 2005
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 248
    Par défaut
    Bonjour Chrifo,

    ça fonctionne bien ! j'ai pris la première syntaxe, ayant une version équivalente à une 2000.
    Nickel !

    Merci beaucoup !

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

Discussions similaires

  1. Comment ecrire une requete sql ?
    Par piiscoo dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/03/2009, 10h16
  2. [Oracle 10g] comment ecrire la requete avec "case"
    Par dylane.sof dans le forum Langage SQL
    Réponses: 12
    Dernier message: 04/06/2007, 13h55
  3. vrai faux comment ecrire dans une requete
    Par pat1545 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 07/08/2006, 17h25
  4. Réponses: 5
    Dernier message: 23/06/2006, 15h04
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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