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

Langage SQL Discussion :

problème requete, nombres résultats limités


Sujet :

Langage SQL

  1. #1
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut problème requete, nombres résultats limités
    Bonjour à tous,

    J'ai 2 tables :
    Machine (ID), ID est clé
    Compteur(ID,Date,cpt) ID+Date est clé

    Exemple de données :
    Machine
    M1
    M2
    M3
    M4

    Compteur
    M1 01/01/2007 10
    M1 02/01/2007 20
    M1 03/01/2007 30
    M1 04/01/2007 40
    M2 01/01/2007 10
    M2 01/01/2007 37
    M4 01/01/2007 10
    M4 02/01/2007 20
    M4 07/01/2007 50
    M4 15/01/2007 60
    M4 19/01/2007 70
    M4 20/01/2007 80
    M4 21/01/2007 80
    M4 29/01/2007 80
    M4 02/02/2007 90

    Ce que je veux, c'est les 3 derniers relevés pour chaque machine, en 1 requête SQL.
    Dans l'exemple ça serait
    M1 02/01/2007 20
    M1 03/01/2007 30
    M1 04/01/2007 40
    M2 01/01/2007 10
    M2 01/01/2007 37
    M3 NULL NULL
    M4 21/01/2007 80
    M4 29/01/2007 80
    M4 02/02/2007 90

    merci d'avance.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    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 115
    Points : 28 491
    Points
    28 491
    Par défaut
    Si tu nous précisais le SGBD que tu utilises et sa version, cela permettrait d'apporter une réponse plus adaptée...

  3. #3
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    sql server 2000

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    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 115
    Points : 28 491
    Points
    28 491
    Par défaut
    Nous savons alors qu'on peut utiliser les sous-requêtes mais pas les fonctions de regroupement analytiques.

    Comme ça peut-être ? (à optimiser certainement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SELECT  m.id
        ,   c.date
        ,   c.cpt
    FROM    machine     AS m
        LEFT JOIN
            compteur    as c
            ON  m.id    = c.id
        LEFT JOIN
            (   SELECT  c1.id
                    ,   c1.date
                    ,   COUNT(c2.*) AS nblig
                FROM    compteur    AS c1
                    LEFT JOIN
                        compteur    AS c2
                        ON  c1.id   = c2.id
                        AND c1.date >= c2.date
                HAVING  nblig <= 3
            )   AS  o
            ON  c.id    = o.id
            AND c.date  = o.id
    ;

Discussions similaires

  1. Problème Requete VBA quand pas de précédents résultats
    Par Pimprenelle dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/06/2013, 16h10
  2. Problème Requete LIMIT
    Par Dinow dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/03/2008, 12h45
  3. Réponses: 3
    Dernier message: 15/07/2005, 18h58
  4. problème requete sql
    Par Fred- dans le forum ASP
    Réponses: 2
    Dernier message: 13/06/2004, 03h20
  5. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 10h31

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