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 :

Utilisation du OR


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de perchman
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 199
    Points : 90
    Points
    90
    Par défaut Utilisation du OR
    Bonjour,

    Dans ma requête précédente (cf Message PB avec Between), je cherche à comparer le début et la fin d'une période A sur une période B.

    Test à faire sur la période suivante (ne pas prendre les points en compte ):
    ...................................Début....................................................Fin
    ......................................x-----------------------------------------x
    Cas 1:
    .....................................................................D.............................................................F
    .....................................................................x--------------------------------------------x
    Cas 2:
    ..................D..........................................F
    ..................x------------------------------x

    Condition du cas 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE A.DEBUT BETWEEN B.DEBUT AND B.FIN
    Condition du cas 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE A.FIN BETWEEN B.DEBUT AND B.FIN

    Ce que je souhaiterais avoir c'est une condition de ce genre là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (A.FIN OR A.DEBUT) BETWEEN B.DEBUT AND B.FIN
    Mais ce code là ne fonctionne pas !!!

    Pleaaaaaaaaase ... HHHHHHHeeeelp (cf Le 5ème Elément)


  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
    Bein :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE A.FIN BETWEEN B.DEBUT AND B.FIN OR A.DEBUT BETWEEN B.DEBUT AND B.FIN


    edit: Par contre fait attention car un between c'est équivalant à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE A.FIN >= B.DEBUT and A.FIN <= B.FIN
    De ce fait, pour les chevauchements d'horaire le BETWEEN n'est pas nécessairement la clause la plus adapté.

    Par exemple un employé A finit à 16h, et un employé B commence à 16h.

    Avec le BETWEEN votre requête va remonter qu'il y a un chevauchement d'horaire, alors qu'en fait il n'y en a pas.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 874
    Points : 53 048
    Points
    53 048
    Billets dans le blog
    6
    Par défaut
    Utilisez le prédicats OVERLAPS : http://sqlpro.developpez.com/cours/gestiontemps/#L1.2.2
    Si votre SGBDR ne l'incorpore pas, faites le sous forme d'UDF.

    A +

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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