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

Requêtes et SQL. Discussion :

Selectionner Les N enregistrements suivants en fonction de criteres


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Selectionner Les N enregistrements suivants en fonction de criteres
    bonjour,

    j'ai une table dans laquelle je recherche la valeur min et max d'un champ.
    je cherche ensuite a recuperer l'ensemble des champs de cette table pour les N enregistrements suivants depuis la valeur recuperée dans le min et le max. bien evidemment les N enregistrements suivants sont des dates et donc ne sont pas consecutifs.

    exemple :
    ma premiere requete me dit que :
    le min a eu lieu le 05/10/2013 pour l'element toto
    le min a eu lieu le 05/03/2013 pour l'element tutu


    je voudrais recuperer dans une requete les 5 premiers elements posterieurs au 05/10/2013 pour toto et les 5 premiers elements posterieurs pour l'element tutu.

    et là, c'est le drame....

    quelqu'un aurait une solution ?

    je vous remercie d'avance,

    L.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour et bienvenue chez nous,

    Aborde le problème comme ceci en 2 requêtes :
    - une qui recherche pour toto les enregistrements postérieurs, limités à 5 ;
    - idem mutatis mutandis pour tutu.
    Ensuite tu les réunis en une requête Union.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    merci monsieur Loup,

    Le truc c'est que ce n'est pas tant d'avoir le resultat en une seule requete que d'obtenir la chose en temps que telle....
    j'ai l'impession d'avoir fait un truc bien compliqué en faisant une fonction :

    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
    Public Function Nsuivants(ladate As Date, codeid As String, nbjours_f As Byte)
     
    Dim moy As Double
    Dim rsx As DAO.Recordset
    Dim strx As String
    ladate2 = ladate + nbjours_f
    strx = "SELECT (rq.Toto),rq.date AS X FROM (SELECT TOP " & (nbjours_f - 1) & " MAtable.TOTO ,MAtable.date  FROM MAtable WHERE (((MAtable.date)<=#" & Month(ladate2) & "/" & Day(ladate2) & "/" & Year(ladate2) & "# and MaTable.codeid=""" & codeid & """)) ORDER BY MAtable.date DESC) AS rq;"
    Set rsx = CurrentDb.OpenRecordset(strx)
     
    a = rsx(0)
    rsx.MoveLast
    On Error Resume Next
    Nsuivants = a / rsx(0) - 1
     
    Set rsx = Nothing
     
    End Function
    ce qui me semble totalement tordu.
    (en fait, je cherche la Valeur N+x pour faire un ratio par rapport a la courante....)

    Dans tous les cas, merci de votre reponse

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Je t’en Monsieur Thazar,
    Je ferais comme ceci dans la fonction :
    - modifier, à la volée, le SQL d’une requête enregistrée pour obtenir les 5 enregistrements ;
    - utiliser sur cette requête les fonctions de domaine pour réaliser le calcul.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

Discussions similaires

  1. Réponses: 8
    Dernier message: 22/04/2009, 14h44
  2. Selectionner les 5 meilleurs enregistrements
    Par Davboc dans le forum SQL
    Réponses: 6
    Dernier message: 12/09/2007, 22h24
  3. Réponses: 2
    Dernier message: 18/05/2007, 17h17
  4. [VBA]Compter les enregistrement suivant critère d'un champs
    Par wachoo31 dans le forum VBA Access
    Réponses: 9
    Dernier message: 27/04/2007, 07h42
  5. créer une requête qui selectionne les 10 derniers enregistrements
    Par kuhnden dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/04/2007, 16h13

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