Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 [Feedback BTS IG 2007] Etude de Cas - Développement Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
harlem
Forumeur occasionnel
Forumeur occasionnel


BTS IG - Option développeur 2ème année
Sexe: Sexe:Masculin
Messages: 26

MessagePosté le: Lun 14 Mai 2007 - 20:31 Répondre en citantRevenir en haut

lol je suis trop lent a ecrire, ça deja été dis Very Happy
Voir le profil de l'utilisateurEnvoyer un message privé

N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
Scalp
Newbiiiie
Newbiiiie




Messages: 11

MessagePosté le: Lun 14 Mai 2007 - 20:32 Répondre en citantRevenir en haut

Je suis entièrement d'accord avec hm, étant donné que pour le MCD, pour l'algo et pour le SQL j'ai exactement fait la même chose à quelques détail près. Very Happy
Voir le profil de l'utilisateurEnvoyer un message privé
ghost
Newbiiiie
Newbiiiie




Messages: 5

MessagePosté le: Lun 14 Mai 2007 - 20:33 Répondre en citantRevenir en haut

jss pas sur genzo !!!

parce que la c'est pas un critere de section,
donc je crois qu'il va te retourner le max de chaque total par nom
c'est a dire tout les totaux de tous les noms.

(a confirmer)

sinon par rapport tjs a la correction proposé les relative de operation je les ai faites ds l'autres sens pour ce qui est des cardinalités.

une opération = comprend plusieurs categories (donc 0,N)
a l'inverse une categorie conprend une operation ( donc (1,1) relative)

je me suis planté ou pas ???
Voir le profil de l'utilisateurEnvoyer un message privé
hm
Forumeur occasionnel
Forumeur occasionnel


BTS IG - Option développeur 2ème année

Messages: 24

MessagePosté le: Lun 14 Mai 2007 - 20:37 Répondre en citantRevenir en haut

Harlem> j'ai fini a 16h45, le serveur a une heure de retard ^^

exact pour le curseur j'ai du me planter !

ghost> pour moi une opération est le plus fin niveau de détail (donc une categorie comprend plusieurs sous-cat qui comprend plusieurs opérations)


Dernière édition par hm le Lun 14 Mai 2007 - 20:40; édité 1 fois
Voir le profil de l'utilisateurEnvoyer un message privé
OxD
Newbiiiie
Newbiiiie




Messages: 3
Localisation: Grenoble Plage

MessagePosté le: Lun 14 Mai 2007 - 20:40 Répondre en citantRevenir en haut

Hello!

Pour la 2. b) on ne demandait que le nom des sous traitant et un sous-traitant a plusieurs contrat donc, a mes yeux, ton SELECT est pas tout à fait juste.
Code:
SELECT distinct ST.nom



Pour l'ALSI, la question 2. c) je rejoins ce qu'a fait harlem sauf que j'ai créé une vue pour que ca soit mon pompeux au niveau de la requête

Code:

CREATE VIEW V AS
SELECT ST.nom, sum(C.nbTotRDVPris) as TotRDV
FROM SOUS_TRAITANT ST, CONTRAT C
WHERE ST.code = C.codeSousTraitant
GROUP BY ST.nom;

SELECT nom, TotRDV
FROM V
WHERE TotRDV = (SELECT max(TotRDV) FROM V);

DROP VIEW V;
 


Sinon le reste me semble bon Smile

Bonne chance pour demain[/code]
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteurMSN Messenger
Genzo
Modérateur
Modérateur


Post-BTS
Sexe: Sexe:Masculin
Messages: 1706
Localisation: Sartrouville (78)

MessagePosté le: Lun 14 Mai 2007 - 20:47 Répondre en citantRevenir en haut

ghost a écrit:
jss pas sur genzo !!!

Toute facon moi j'ai fait du grand n'importe quoi pour ce fameux calcul Very Happy
J'avais pas tout lu sur le MLD.

_________________
N'oubliez pas de mettre un avis sur votre lycée/centre de formation !!! Pensez aux futurs BTSiens. Merci Wink
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteurMSN Messenger
Mojales
Newbiiiie
Newbiiiie




Messages: 1

MessagePosté le: Lun 14 Mai 2007 - 20:53 Répondre en citantRevenir en haut

Pour la question 2.1.c, je penche plutot pour cette solution :

Code:

SELECT nom, SUM (nbTotRDVPris)
FROM Sous-Traitant ST, Contrat C
WHERE ST.code=C.codeSousTraitant
GROUP BY nom
HAVING SUM (nbTotRDVPris) >= (SELECT SUM (nbTotRDVPris)
FROM Sous-Traitant ST, Contrat C
WHERE ST.code=C.codeSousTraitant);


ensuite pour le MCD la ternaire n'est pas la bonne solution.

Puis la procédure (2.2) il n'y a pas de soustraction a faire (240 - chargeMAT)


Dernière édition par Mojales le Lun 14 Mai 2007 - 20:56; édité 1 fois
Voir le profil de l'utilisateurEnvoyer un message privé
d-rek
Newbiiiie
Newbiiiie


BTS IG - Option développeur 2ème année
Sexe: Sexe:Masculin
Messages: 10

MessagePosté le: Lun 14 Mai 2007 - 20:53 Répondre en citantRevenir en haut

d-rek a écrit:
Pour la requête C vous êtes sûr de votre coup ??

Heureusement que j'étais là.. Very Happy

Moi j'ai fait
Code:
SELECT S.nom, MAX(SUM(C.nbTotRDVPris ))
FROM SOUS_TRAITANT S, CONTRAT C
WHERE S.code = C.codeSousTraitant

"Tout simplement.." (© Keyloggs)
Voir le profil de l'utilisateurEnvoyer un message privé
hm
Forumeur occasionnel
Forumeur occasionnel


BTS IG - Option développeur 2ème année

Messages: 24

MessagePosté le: Lun 14 Mai 2007 - 20:57 Répondre en citantRevenir en haut

d-rek a écrit:
d-rek a écrit:
Pour la requête C vous êtes sûr de votre coup ??

Heureusement que j'étais là.. Very Happy

Moi j'ai fait
Code:
SELECT S.nom, MAX(SUM(C.nbTotRDVPris ))
FROM SOUS_TRAITANT S, CONTRAT C
WHERE S.code = C.codeSousTraitant

"Tout simplement.." (© Keyloggs)


Avec cette requete tu vas avoir le nom de tous les sous-traitant avec le nombre max d'un seul sous-traitant

En fait je pense que ma solution (page1) est juste, etant donné que le sujet précise que la table contient les contrats de l'année EN COURS
Or, la propriété NbTotRDVPris contient le nombre de RDV de l'année en cours Smile

Edit: en fait non, un sous-traitant peut passer plusieurs contrats Embarassed
Voir le profil de l'utilisateurEnvoyer un message privé
jack
Newbiiiie
Newbiiiie



Sexe: Sexe:Masculin
Messages: 11

MessagePosté le: Lun 14 Mai 2007 - 20:59 Répondre en citantRevenir en haut

OxD a écrit:


SELECT nom, TotRDV
FROM V
WHERE TotRDV = (SELECT max(TotRDV) FROM V);

[/code]


C'est pas très malin comme reponse
Voir le profil de l'utilisateurEnvoyer un message privé
Fabino
Newbiiiie
Newbiiiie


BTS IG - Option développeur 2ème année
Sexe: Sexe:Masculin
Messages: 5
Localisation: Toulouse

MessagePosté le: Lun 14 Mai 2007 - 21:00 Répondre en citantRevenir en haut

Moi aussi, je me suis planté sur cette requête.
Je crois qu'il faut faire ça, mais j'en suis pas sur. Qu'en pensez-vous ?
Code:
SELECT Nom, Sum(nbTotRDVPris) as TotalRdV
FROM SOUS_TRAITANT as ST, CONTRAT as C
WHERE ST.code=C.codeSousTraitant
GROUP BY Nom
HAVING TotalRdV= (SELECT MAX(Sum(nbTotRDVPris))
FROM SOUS_TRAITANT as ST, CONTRAT as C
WHERE (ST.code=C.codeSousTraitant) )
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
jack
Newbiiiie
Newbiiiie



Sexe: Sexe:Masculin
Messages: 11

MessagePosté le: Lun 14 Mai 2007 - 21:03 Répondre en citantRevenir en haut

Fabino a écrit:
Moi aussi, je me suis planté sur cette requête.
Je crois qu'il faut faire ça, mais j'en suis pas sur. Qu'en pensez-vous ?
Code:
SELECT Nom, Sum(nbTotRDVPris) as TotalRdV
FROM SOUS_TRAITANT as ST, CONTRAT as C
WHERE ST.code=C.codeSousTraitant
GROUP BY Nom
HAVING TotalRdV= (SELECT MAX(Sum(nbTotRDVPris))
FROM SOUS_TRAITANT as ST, CONTRAT as C
WHERE (ST.code=C.codeSousTraitant) )


Il te faut forcement un group by sur la deuxieme requete sinon tu recherche le max d'une seule somme
Voir le profil de l'utilisateurEnvoyer un message privé
kazhar
Accro à Web-IG
Accro à Web-IG



Sexe: Sexe:Masculin
Messages: 126
Localisation: Lyon

MessagePosté le: Lun 14 Mai 2007 - 21:03 Répondre en citantRevenir en haut

Pour cette requête, j'ai fait :

Code:
SELECT nom, nbTotRDVPris
FROM sous_traitant, contrat
WHERE code = codeSousTraitant
AND nbTotRDVPris = (SELECT MAX(sum(nbTotRDVPrid))
FROM contrat);
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteur
hm
Forumeur occasionnel
Forumeur occasionnel


BTS IG - Option développeur 2ème année

Messages: 24

MessagePosté le: Lun 14 Mai 2007 - 21:04 Répondre en citantRevenir en haut

Bon je me suis décidé a ressortir mes cours ^^
en fait pas de group by avec un MAX dans le select, obligé de passer par une vue pour ce genre de probleme, bien vu OxD Wink
Voir le profil de l'utilisateurEnvoyer un message privé
jack
Newbiiiie
Newbiiiie



Sexe: Sexe:Masculin
Messages: 11

MessagePosté le: Lun 14 Mai 2007 - 21:05 Répondre en citantRevenir en haut

kazhar a écrit:
Pour cette requête, j'ai fait :

Code:
SELECT nom, nbTotRDVPris
FROM sous_traitant, contrat
WHERE code = codeSousTraitant
AND nbTotRDVPris = (SELECT MAX(sum(nbTotRDVPrid))
FROM contrat);


il manque la jointure
Voir le profil de l'utilisateurEnvoyer un message privé
OxD
Newbiiiie
Newbiiiie




Messages: 3
Localisation: Grenoble Plage

MessagePosté le: Lun 14 Mai 2007 - 21:05 Répondre en citantRevenir en haut

jack a écrit:
OxD a écrit:


SELECT nom, TotRDV
FROM V
WHERE TotRDV = (SELECT max(TotRDV) FROM V);

[/code]


C'est pas très malin comme reponse



tu peux approfondir ?
Voir le profil de l'utilisateurEnvoyer un message privéVisiter le site web du posteurMSN Messenger
Fabino
Newbiiiie
Newbiiiie


BTS IG - Option développeur 2ème année
Sexe: Sexe:Masculin
Messages: 5
Localisation: Toulouse

MessagePosté le: Lun 14 Mai 2007 - 21:06 Répondre en citantRevenir en haut

jack a écrit:
Fabino a écrit:
Moi aussi, je me suis planté sur cette requête.
Je crois qu'il faut faire ça, mais j'en suis pas sur. Qu'en pensez-vous ?
Code:
SELECT Nom, Sum(nbTotRDVPris) as TotalRdV
FROM SOUS_TRAITANT as ST, CONTRAT as C
WHERE ST.code=C.codeSousTraitant
GROUP BY Nom
HAVING TotalRdV= (SELECT MAX(Sum(nbTotRDVPris))
FROM SOUS_TRAITANT as ST, CONTRAT as C
WHERE (ST.code=C.codeSousTraitant) )


Il te faut forcement un group by sur la deuxieme requete sinon tu recherche le max d'une seule somme


C'est ce qu'il demandé. "Le sous-traitant ayant obtenu le plus grand nombre de RDV".
Et puis il me semble aussi que c'est impossible de mettre un group by sur la deuxième.
Enfin, je pense que c'est ça.
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
jack
Newbiiiie
Newbiiiie



Sexe: Sexe:Masculin
Messages: 11

MessagePosté le: Lun 14 Mai 2007 - 21:07 Répondre en citantRevenir en haut

hm a écrit:
Bon je me suis décidé a ressortir mes cours ^^
en fait pas de group by avec un MAX dans le select, obligé de passer par une vue pour ce genre de probleme, bien vu OxD Wink


relis bien tes cours
Voir le profil de l'utilisateurEnvoyer un message privé
Fabino
Newbiiiie
Newbiiiie


BTS IG - Option développeur 2ème année
Sexe: Sexe:Masculin
Messages: 5
Localisation: Toulouse

MessagePosté le: Lun 14 Mai 2007 - 21:08 Répondre en citantRevenir en haut

jack a écrit:
hm a écrit:
Bon je me suis décidé a ressortir mes cours ^^
en fait pas de group by avec un MAX dans le select, obligé de passer par une vue pour ce genre de probleme, bien vu OxD Wink


relis bien tes cours


Il me semble que tu as raison jack.
Il ne faut pas de Group By quand il y a juste qu'un MAX dans le SELCT
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
hm
Forumeur occasionnel
Forumeur occasionnel


BTS IG - Option développeur 2ème année

Messages: 24

MessagePosté le: Lun 14 Mai 2007 - 21:10 Répondre en citantRevenir en haut

Code:
CREATE VIEW V_TOTALRDV
AS
SELECT S.nom, SUM(C.nbTotRDVPris) AS total
FROM SOUS_TRAITANT S, CONTRAT C
WHERE S.code = C.codeSousTraitant
GROUP BY S.nom;

SELECT nom, total
FROM V_TOTALRDV
WHERE total = ( SELECT MAX(total) FROM V_TOTALRDV );
Voir le profil de l'utilisateurEnvoyer un message privé
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum