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 :

une requête avec plusieurs INNER JOIN, cmt faire ?


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Points : 17
    Points
    17
    Par défaut une requête avec plusieurs INNER JOIN, cmt faire ?
    salut tt le monde !!

    je voulais faire une requête sur SQL (d'access) mais j'ai pas su comment le faire. j'ai besoin de votre aide.

    j'ai 5 tables :
    FILMS(NumFilm, TitreFilm)
    COPIES FILMS(NumCopi, NumFilm)
    CINEMAS(NumCiné, NomCiné)
    SALLES(NumSalle,NbPlace, NumCiné)
    LANCEMENT(NumSalle, NumCopi, DateLancement)

    ma question c'est comment je peut afficher sans répétition les films sortis le mois de mars de l'année en cours et qui étaient projetés dans les salles 1, 2, 5 et 7 (NumFilm, TitreFilm, Mois de sortie, Année en cours)


    et Merci d'anvce de vos réponse et de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Access ou MS-SQL ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT F.NumFilm, 
                F.TitreFilm, 
                datename(m,Datelancement ) AS "Mois de sortie", 
                year(Datelancement ) AS "Annee en cours"
    FROM FILMS F INNER JOIN "COPIES FILMS" CF
        ON F.NumFilm = CF.NumFilm
    INNER JOIN LANCEMENT L
        ON L.NumCopi = CF.NumCopi
    WHERE L.Datelancement BETWEEN '1.3.2005' AND '31.3.2005'
    AND  L.NomSalle IN (1,2,5,7)
    et vous pouvez toujours modifier le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE L.Datelancement BETWEEN '1.3.2005' AND '31.3.2005'
    par un moins performant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE datepart(m,L.Datelancement)=3
    AND year(L.DateLancement)=year(getdate())
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Je te remercie infiniment
    je voulais la syntaxe pour Sql d'access (désolé si je me suis trompé de section), mais bon j'ai retenus l'essentiel c'est que je doit combiner avec 2 INNER JOIN, j'ai pu comprendre le principe et je me suis inspirer de ton code et je l'ai adapter pour access et voilà ce que j'ai pu avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT FILMS.Numfilm, FILMS.Titfilm, Month([datsort]) AS [Mois de sortie], Year(Date()) AS [année en cours]
    FROM FILMS, COPIESFILMS, LANCEMENT
    WHERE FILMS.Numfilm=COPIESFILMS.Numfilm AND COPIESFILMS.Numcopi=LANCEMENT.Numcopi AND LANCEMENT.Numsall In (1,2,5,7);
    Ou bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DISTINCT FILMS.Numfilm, FILMS.Titfilm, Month([datsort]) AS [Mois de sortie], Year(Date()) AS [année en cours]
    FROM FILMS INNER JOIN (COPIESFILMS INNER JOIN LANCEMENT ON COPIESFILMS.Numcopi=LANCEMENT.Numcopi) ON FILMS.Numfilm=COPIESFILMS.Numfilm
    WHERE LANCEMENT.Numsall In (1,2,5,7);

    Merci encore une fois !

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2013, 17h30
  2. [AC-2007] Créer une requête imbriquant deux INNER JOIN
    Par Olivier JC dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/09/2009, 23h23
  3. [WD12] Erreur dans une Requête avec plusieurs INNER JOIN
    Par Raphael1980 dans le forum WinDev
    Réponses: 3
    Dernier message: 12/06/2009, 15h22
  4. [SQL] Requête dans une requête...avec des INNER JOIN!
    Par PedroBD dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 06/04/2006, 08h26

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