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 :

Recherche de plusieurs résultats sur plusieurs critères


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut Recherche de plusieurs résultats sur plusieurs critères
    Bonjour à tous,

    Après recherche sur le forum, je n'arrive pas à vraiment trouver réponse à mon problème donc je me décide enfin à créer un nouvele discussion. Je travaille sur une table qui contient tous les jours de l'année et qui indique s'ils sont ou non ouvrés (O = ouvré, N = non ouvré) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    01/01/2011    N
    02/01/2011    N
    03/01/2011    O
    04/01/2011    O
    05/01/2011    O
    06/01/2011    N
    07/01/2011    N
    08/01/2011    O
    ...
    De cette table, je souhaite extraire une série de jours ouvrés les plus proches de plusieurs dates (supérieurs ou égaux). Je souhaite par exemple connaître les 1ers jours ouvrés après le 11/01/2011, le 28/02/2011, …

    Pour une seule date, très simple, je fais quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select min(date) from tableDates where date >= <ma première date recherchée> and typeJour = 'O'
    Par contre, pour plusieurs dates, je n'arrive pas à trouver. J'ai essayé des choses de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select (select min(date) from tableDates where date >= <1ère date cherchée> and typeJour = 'O'),
        (select min(date) from tableDates where date >= <2ème date cherchée> and typeJour = 'O'),
        (select min(date) from tableDates where date >= <3ème date cherchée> and typeJour = 'O'),
        ...
    from tableDates
    mais je trouve cette solution très moche et le résultat ne correspond pas véritablement à ce que j'attends. Est-ce que vous auriez une idée de requête SQL pour répondre à mon attente ? (en partant du postulat qu'une solution existe bien à mon problème)

    Merci d'avance pour vos réponses.

    Pour information : je suis sous DB2, je ne dois en aucun cas modifier la BDD, je ne peux pas utiliser de procédure stockée.
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    Essayez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT min(date) FROM tableDates WHERE date >= <ma première date recherchée> AND typeJour = 'O'
    UNION ALL
    SELECT min(date) FROM tableDates WHERE date >= <ma 2eme date recherchée> AND typeJour = 'O'
    UNION ALL
    ...

  3. #3
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Tout d'abord, merci pour la rapidité de la réponse.

    Je viens de tester et le résultat est vraiment très très bon niveau temps de réponse. Plus qu'à convertir tout ça en HQL maintenant

    Encore merci pour cette réponse qui correspond parfaitement à ce que je recherchais.
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

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

Discussions similaires

  1. Problème recherche à plusieurs résultats et plusieurs critères
    Par raphl dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 30/05/2011, 11h25
  2. Plusieurs résultats sur une seule ligne
    Par Morphorpse dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/08/2007, 19h36
  3. Réponses: 9
    Dernier message: 03/08/2007, 15h13
  4. [Oracle] Résultats sur plusieurs pages (pagination)
    Par lilsandy dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/07/2007, 10h26
  5. Formulaire recherche + résultat sur plusieurs pages
    Par Pepito2030 dans le forum Langage
    Réponses: 1
    Dernier message: 14/06/2007, 12h23

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