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

SQL Oracle Discussion :

Select [] not in rownumber < 4


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Select [] not in rownumber < 4
    Bonjour,

    Le but est de faire une rotation sur mes personnes qui visitent des restaurants, j'ai cru comprendre qu'on pouvait s'en sortir avec des rownumbers mais je ne sais pas trop comment le mettre en forme

    Voila mes tables (simplifiées)
    Resto(Id_resto)
    Visite(id_personne, Id resto, date, id_visite)
    personne(Id_personne)

    Donc par exemple avec ce jeu de données
    Personne
    [1]
    [2]
    [3]
    [4]
    [5]

    Visites
    [1,1,’2017-1-1’,1]
    [2,1,’2017-2-1’,2]
    [3,1,’2017-2-4’,3]
    [4,1,’2017-2-6’,4]
    [2,2,’2017-2-1’,2]

    Restaurant
    [1]
    [2]
    [3]

    Je cherche un moyen d’avoir en retour un id_resto ainsi qu’un id_personne, la ne faisant pas partie des 3 dernieres à avoir visité le resto
    Donc avec le jeu de données j’aurais
    Result(id_resto, id_personne)
    [1,1]
    [1,5]
    [2,1]
    [2,3]
    [2,4]
    [2,5]
    [3,1]
    [3,2]
    [3,3]
    [3,4]
    [3,5]

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 393
    Points
    9 393
    Par défaut
    Décomposons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select idPersonne from Personne ;                              --> la liste des personnes
    Select idRestau from Restau ;                                       --> la liste des restaus
    Select idPersonne, idRestau from Visite ;                       --> la liste des visites 
    Select idPersonne, idRestau  from Personne, Restau ;     -->   sans clause Where, donne la liste des personnes croisée avec la liste des Restau (= Toutes les associations possibles)
     
    Select idPersonne, idRestau  from Personne, Restau
    minus 
    Select idPersonne, idRestau from Visite  ;                     --> Donne la liste des combinaisons ... en excluant celles qui ont déjà eu lieu.
    Reste à remplacer "Select idPersonne, idRestau from Visite ; " par une requête du même type, mais qui filtre sur les dernières visites.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Décomposons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select idPersonne from Personne ;                              --> la liste des personnes
    Select idRestau from Restau ;                                       --> la liste des restaus
    Select idPersonne, idRestau from Visite ;                       --> la liste des visites 
    Select idPersonne, idRestau  from Personne, Restau ;     -->   sans clause Where, donne la liste des personnes croisée avec la liste des Restau (= Toutes les associations possibles)
     
    Select idPersonne, idRestau  from Personne, Restau
    minus 
    Select idPersonne, idRestau from Visite  ;                     --> Donne la liste des combinaisons ... en excluant celles qui ont déjà eu lieu.
    Reste à remplacer "Select idPersonne, idRestau from Visite ; " par une requête du même type, mais qui filtre sur les dernières visites.
    Merci je pense réussir à faire ce que je voulais, j'essaye demain

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

Discussions similaires

  1. Requête Select - Not Exists
    Par aurelie.guegan.15 dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 29/09/2014, 11h37
  2. Null value et select not null
    Par Invité dans le forum SQL
    Réponses: 10
    Dernier message: 18/02/2010, 11h55
  3. Select NOT IN
    Par olibara dans le forum MySQL
    Réponses: 39
    Dernier message: 15/10/2008, 13h53
  4. a,b,c NOT IN (select a,b,c from table)
    Par szdavid dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2005, 09h19

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