Requete sql

Bonjour à tous.
J'ai un td a rendre en SGBD, et a vrai dire je me galère un peu...
Il s'agit d'une base sur les hopitaux avec 4 tables

T_clinique(Num_clinique : numérique, Nom : chaine, NbLits : numérique, #ville : chaine)
T_implantation(Ville : chaine, departement : chaine, Nbhab : numérique)
T_specialite(Num_spécialité : numérique, libelle : chaine)
T_service(#Num_clinique : numérique, #num_specialite : numerique)

j'ai 7 requetes SQL à faire. je ne vous demande bien sur pas de répondre à ces requetes, mais de me donner des pistes pour avancer.

1) num des spécialité offerte par aucune clinik du rhone

2) nom de la clinik qui a le + grand nb de lits, pour chaque ville (affichée)

3) num des cliniques qui disposent à la fois des spécialité 100,600 et 700

4) num des cliniques offrant toutes les spécialités de la clinik clairval à marseille

5) ville offrant la meilleur offre médical cumulée (cumul des lits d'une ville)

6) num des clinik ayant une plus grande capacité que celles des charmmettes à lyon

7) num des clinik qui disposent des spécialités 100 et/ou 600

Merci d'avance à vous tous
Configuration: Windows XP
Firefox 3.0.3

25 réponses

Résumé de la discussion

Cette discussion porte sur un exercice SQL relatif à une base hospitalière à quatre tables et sept requêtes, et cherche des pistes méthodologiques plutôt que des solutions directes. Plusieurs échanges évoquent des questions de contexte (formation) et des difficultés de jointures, avec des échanges familiers et peu axés sur les aspects techniques, pour certains. Pour la requête sur la meilleure offre médicale par ville, une proposition technique mentionne l’agrégation avec group by et sum(nblits) sur tclinique, tout en signalant qu’il manque peut-être des éléments. Des échanges ont aussi reflété des questions sur l’absence de solutions immédiates et des remarques personnelles, sans éclaircissement clair sur la démarche à suivre par les participants.

Bobot (l’IA à votre service)
  1. Ok je vois qu'il n'y a personne de caler en sql.....

    Pour la 3 je propose ceci:
    SELECT num_clinique
    FROM T_SERVICE
    WHERE num_specialite = 100
    AND num_clinique IN (
    SELECT num_clinique
    FROM T_SERVICE
    WHERE num_specialite = 600
    )
    AND num_clinique IN (
    SELECT num_clinique
    FROM T_SERVICE
    WHERE num_specialite = 100
    );

    qu'est-ce que vous en pensez ?
    1. utilises OR
    2. @Stef60or ??? impossible. c'est A LA FOIS 100, 600 ET 700 et non pas 100 ou 600 ou 700
  2. et pour la 6) ceci

    SELECT num_clinique
    FROM T_CLINIQUE
    WHERE Nblits > (
    SELECT Nblits
    FROM T_CLINIQUE
    WHERE NOM='Charmettes'
    );

    votre avis ?
    1. bonsoir,
      tu peux faire beaucoup mieux.
      voir jointure.
    2. @Stef60jointure impossible ici.....pour cette requête je travaille sur la même table....
  3. pour la 5 ça doit être select ville, sum(nblits) from tclinique group by ville; mais il doit manquer qqch!!!!
    1. si tu nous dit ton prénom, on te donne la réponse à une question, ça te va?
      1. on peut savoir qu'elle est ta formation? licence ? licence d'iinfo? master? et qu'elle estsa filiére?
        • 1
        • 2