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 :

Remplacer "Intersection" dans une requête


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Remplacer "Intersection" dans une requête
    Bonjour,

    Je travaille actuellement sur une base de données Pervasive et ai quelques difficultés à obtenir un résultat issu normalement d'une requete comprenant un "intersection". En effet, Pervasive ne connait pas intersection


    En fait, avec intersection je cherchais à isolé tous les enregistrements compris entre les dates 1 et 2 (ce que je parviens à faire sous sql serveur
    - infini Date 1 Date 2 + infini
    | | | |
    A <--------------------------->
    B <--------->
    C <------------------------->
    D <----->
    E <---------->
    Concrètement, dans le cas présent, je cherche les enregistrements A,C et D dès lors que j'ai mes dates 1 et 2 et ce sans utiliser "Intersection" dans ma requete.
    Merci d'avance à ce qui pourront m'aider.

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    La mise en forme est pas super explicite...

    Est-ce que tu pourrais préciser un petit peu ?
    Genre si tu parles de lignes qui sont dans un intervalle de dates, ça veut dire que tu as deux colonnes qui définissent un intervalle ?

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut equivalent de intersect
    Je n'ai pas lu ton problème mais la solution, tu la trouveras dans le cours de sql pro ici, ci dessous, un extrait, trois requêtes équivalent à la commande intersect en sql.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT t1.col1, t1.col2 FROM t1
    INTERSECT
    SELECT t2.col1, t2.col2 FROM t2
     		      			 		      		 		      		 		      			 SELECT DISTINCT t1.col1, t1.col2
    FROM   t1
           INNER JOIN t2
                 ON t1.col1 = t2.col1 AND t1.col2 = t2.col2
    		      			 		      			 		      		 		      		 		      			 SELECT DISTINCT t1.col1, t1.col2
    FROM   t1
    WHERE  EXISTS (SELECT * 
                   FROM t2
                   WHERE t1.col1 = t2.col1 AND t1.col2 = t2.col2)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par ylarvor Voir le message
    Je n'ai pas lu ton problème mais la solution, tu la trouveras dans le cours de sql pro ici, ci dessous, un extrait, trois requêtes équivalent à la commande intersect en sql.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT t1.col1, t1.col2 FROM t1
    INTERSECT
    SELECT t2.col1, t2.col2 FROM t2
     		      			 		      		 		      		 		      			 SELECT DISTINCT t1.col1, t1.col2
    FROM   t1
           INNER JOIN t2
                 ON t1.col1 = t2.col1 AND t1.col2 = t2.col2
    		      			 		      			 		      		 		      		 		      			 SELECT DISTINCT t1.col1, t1.col2
    FROM   t1
    WHERE  EXISTS (SELECT * 
                   FROM t2
                   WHERE t1.col1 = t2.col1 AND t1.col2 = t2.col2)
    Merci beaucoup.
    Je pense que je vais pouvoir me débrouiller avec ceci effectivement.
    Bonne journée à tous.
    Carribean

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/07/2018, 14h18
  2. [RegEx] remplacer AND par WHERE dans une requête SQL
    Par Kyaan dans le forum Langage
    Réponses: 2
    Dernier message: 17/07/2008, 15h42
  3. Remplacer une jointure dans une requête DELETE
    Par lorant dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/11/2006, 20h46

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