1

Voilà j'ai le MCD suivant:

patient( Nump, nomp, prenomp, télp, codep, villep, numc#
mèdecin(numM, nomM, PrenomM, AdrM, VilleM, TélM)
consulter(NumP#, NumM#, date, tarif, remsécu, remmut)
caisse(Numc, nomc, adrc, codec, villec, telc)

On sait que:

-tarif de la consultation
-montant du remboursement effectué par la sécu
-montant du remboursement complémentaire réglé par la mutuelle (si le patient est couvert à 100%, le remboursement de la sécurité sociale plus celui de la mutuelle est égal au montant de la consultation)

Question:

combien de consultations ont été remboursées à 100%?

J'ai du mal j'arrive pas à résoudre cette question en sql si quelqu'un pouvait m'aider...smile
avatar
Webmaster du site aB-)(-AwS http://www.ab-aws.fr.st/

2

remsecu=remboursement secu et remmut= remboursement mutuel
avatar
Webmaster du site aB-)(-AwS http://www.ab-aws.fr.st/

3

bon, je suppose que souligne = cle primaire, et # = cle etrangere...

pour les tables patient, medecin et caisse, tous les champs sont remplis, et connus, si je comprend bien, et sont "fixes"
la ou il y a des trucs qui sont plus ou moins galere, c dans consulter
enfin, remarque, a priori, on connait aussi tarif, remsecu et remmut dans la table consulter, d'apres ce que tu notes.

une consultation remboursee a 100%, je suppose que c'est une consultattion pour laquelle cnsulter.remsecu+consulter.remmut = consulter.tarif ?
si c'est ca, il faut deja que tu determine quelles sont les lignes de la table consulter pour lesquelles cela est vrai
select *
from consulter
where tarif = remsecu+remmut;
(heu, je sais plus trop si pour l'egalite c'est un seul = ou deux a la suite == en SQL)

et ensuite, il faut compter le nombre de lignes que te renvoie cette requete :
select COUNT(NumP)
from consulter
where tarif = remsecu+remmut;

enfin, si j'ai bien compris le sujet, et que g pas tout oublie du SQL, quelque chose dans ce genre devrait pouvoir fonctionner

A toi de tester smile
(avec un peu de chance, ca peut marcher)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

4

Est ce que cela serait bon si je faisais ça:

Select count (nump) as [ Nbr de consultations remboursés à 100%]
from consulter
where tarif = (select *
from consulter
where tarif=remsecu + remmut);

fait pas trop gaffe au "as" c est une notation qui n'existe que sur Access si je me trompe pas.

smile
avatar
Webmaster du site aB-)(-AwS http://www.ab-aws.fr.st/

5

Le as existe aussi sous Oracle :0
(a vrai dire, je ne savais pas que ca existait aussi sous Access, mais fo dire que vu le peu que g utilise Access...)

heu...
la requete externe equivaut a ce que j'ai fait, il me semble
mais la requete inter ca va pas tropm je dirai (enfin, logiquement)

je m'eplique :
where tarif = (select *
from consulter
where tarif=remsecu + remmut);

la, tu cherche a comparer tarif, qui est selon toute logique un entier ou un flottant (enfin, un nombre quoi) a une ligne entiere de la table consulter
(le select * signifie que su selectionne tous les champs de la ligne)

en pus, ca doit te faire faire deux parcours de la table consulter, ca
(un pour chaque select)

a la limite, tu aurais pu faire, si tu veux utiliser deux requetes imbriquees :

Select count (nump) as [ Nbr de consultations remboursés à 100%]
from consulter
where tarif = (select tarif
from consulter
where tarif=remsecu + remmut);

mais bon, c pas vraiment utile grin
(Et je sais meme pas si ca marcherait bien)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

6

Ok merci beaucoup. Disons que la sous requête en fait était nécessaire puisque au niveau ou je suis en sql, je suis quasi obligé de passer par là... Car comme c'est un devoir écrit j'ai pas le droit d'écrire 2 requêtes. Donc je suis obligé de l'imbriquer. Merci beaucoup de coup de main. Ca m'a permis de corriger quelques petites erreurs. J'avais rajouter en plus la table patient mdr.
avatar
Webmaster du site aB-)(-AwS http://www.ab-aws.fr.st/

7

smile
cela dit, tu feri bien de tester qd meme, avant de rendre ca smile

(on sait jamais grin mes cours de SQL remontent a 6 mois pr les erniers, il me semble)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

8

En fait ca correspondait quasiment à ce que j'avais fait. Mais je vérifierai tout à l'heure en revenant du code lol.
avatar
Webmaster du site aB-)(-AwS http://www.ab-aws.fr.st/