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

MS SQL Server Discussion :

implémenter la notion "au moins" pour une liste d'


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Avatar de mohamed
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 217
    Points : 393
    Points
    393
    Par défaut implémenter la notion "au moins" pour une liste d'
    Bonjour,
    J'ai 2 tables "etudiant et matiere" et une table de lien entre les deux.
    J'ai une proc stockée qui prend en entrée une chaine contenant une liste d'identifiants de matière et je voudrais fournir la liste des étudiants s'étant inscrit au moins aux matières fournies en entrée.Je Je voudrais savoir cmmnt implémenter ce "au moins" pour la liste des matières fournis en entrée!
    Merci d'avance!

  2. #2
    Membre actif Avatar de David.V
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 191
    Points : 203
    Points
    203
    Par défaut
    Avec la clause "Having Count", je pense que tu devrais pouvoir y arriver.

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 56
    Points : 64
    Points
    64
    Par défaut
    Tu dois faire une division relationnelle... Regarde sur le site de SQLPro c'est très bien expliqué.
    http://sqlpro.developpez.com/DivRel/SQL_DIVR.html

  4. #4
    Membre averti
    Avatar de mohamed
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 217
    Points : 393
    Points
    393
    Par défaut
    Est-ce qu'il devrai alors y avoir un group by?
    Merci.

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Je pense qu'avec les opérateurs de jointure, tu peux vraiment te tirer de la situation.
    Poste-nous le script de creation des tables mises en jeux.

  6. #6
    Membre averti
    Avatar de mohamed
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 217
    Points : 393
    Points
    393
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    etudiant(num_etud integer,nom_etud varchar)
    matiere(codem integer,nom_mat varchar)
    inscription(num_etud integr,codem integr)
    Je voudrais par exemple me donne l'ensemble des étudiants
    qui se sont inscrit au moin aux matières 1,2 et 3

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Essaie ceci :

    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
    CREATE PROCEDURE SP_INSCRIT
    	@PARAM_ID AS VARCHAR(800)--Par exemple
    AS 
    BEGIN
    	DECLARE @SQLD VARCHAR(8000)
     
    	SELECT @SQL='SELECT nom_etud' + 
    	'FROM INSCRIPTION I JOIN MATIERE M' +
    		'ON I.CODEM=M.CODEM' +
    	     'JOIN ETUDIANT E' +
    		'ON E.NUM_ETUD=I.NUM_ETUD' +
    	'WHERE CODEM IN @PARAM_ID' 
     
    	EXEC(@SQL)
    END

  8. #8
    Membre averti
    Avatar de mohamed
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 217
    Points : 393
    Points
    393
    Par défaut
    Merci à tous!
    Je pense que comme l'a dit Moah,il faudrai utiliser la division.En plus l'article est intéressant.
    Laurent,ce que t'a dit pose un problème car en faisant la requête ej'aurais aussi les étudiants inscrits qu'à la matière 1 alors que moi je veux les étudiants inscrits au moins aux matières 1,2,3 (au moins contenant les 3)
    Merci à tous.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/09/2009, 21h24
  2. Réponses: 3
    Dernier message: 30/06/2006, 09h41
  3. Réponses: 3
    Dernier message: 13/04/2006, 18h04
  4. [Debutant(e)]conseil pour une liste ?
    Par Tymk dans le forum Débuter
    Réponses: 5
    Dernier message: 05/08/2004, 14h33

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