Aide Sql mysql !!

Fermé
trik59 Messages postés 241 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 17 mai 2012 - 25 janv. 2005 à 11:16
trik59 Messages postés 241 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 17 mai 2012 - 25 janv. 2005 à 13:25
bonjour,

voila je sui en stage, et je doit d'utiliser php et sql mysql !
je sui perdu je debute a peirne a apprendre php et je ne connais pas mysql, et un ptit peut de sql seulement, sa fé voila 1jour que je cherche tou seul, voila maintnan le 2em jour et tjours des erreurs.
...
voila mon prob;

j'ai 4 tables
MATERIEL (id_mat, id_type_mat...., id_div),

DIVISION (id_div, nom)

TYPE_MAT (id-type_mat, id_sorte_mat...)

TYPE_UNITE_CENTRALE ( id_type_ucs, id_type_mat, id_element...)


je cherche en fait a (calculer) a savoir pour chaque division qui existe ds ma base, le nombre de pc (uc) qu'ils disposent.

mes requetes ne fonctione pas, et je sui perdu ds le noir!

svp quelqu'un pourait il m'aider a resoudre ce prob qui parait etre simple pourtan,...il faut bien commencer par la!!


Grand merci d'avance!!!!

5 réponses

maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
25 janv. 2005 à 11:25
Bonjour!!

Mets nous la requête qui te permet de savoir ça! Comme ça, on te la corrigera! ;-)

Maily :-))))
0
trik59 Messages postés 241 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 17 mai 2012 39
25 janv. 2005 à 11:39
SELECT (nom_div, id_type_mat, id-sorte_mat

FROM MATERIERL, DIVISION

WHERE division.id_div=materiel.id_div#

AND count id_type_mat ="2";)

j'ai utiliser count pour compter le nombre de uc mais ché pa si cela se fé com sa ?

j'accepte toute critique, je ne fait que debuter, je ne demande pas quand méme de me macher le boulot, ya aucun interet ! juste m'aiclaircir car je n'est pa encore fini d'avoir des prbls
(le chiffre 2 represente les ucs dans ma base)

bioubou ! merci
0
Dans la clause "SELECT" il faut mettre des noms de champs. Ces noms apparaitront dans ton résultat et seront les intitulés des colonnes, dans l'ordre dans lequel tu les auras déclarés. Normalement il faut que ces noms soient les mêmes que les champs définis dans tes tables, mais il y a quelques entorces à la règle : COUNT. Tu peux définir une colonne avec une colonne "nb_lignes" qui compte le nombre de lignes de ta requete :
SELECT COUNT(*) AS nb_lignes
FROM table ;

Ici tu veux grouper les unites centrales par division. D'ailleurs, en général, lorsque tu vois un "pour chaque ..." dans la formulation d'une requête, c'est qu'il faut regrouper les résultats avec GROUP BY.
SELECT id_div, nom_div, COUNT(*) AS nb_ucs
FROM Materiel, Division
WHERE Division.id_div=Materiel.id_div
AND id_type_mat=2
GROUP BY id_div ;

Tu dois mettre tes conditions de filtrage dans la clause "WHERE" avec éventuellement un ou plusieurs "AND". Tu as deux conditions : l'attribut de jointure (ne jamais l'oublier sous peine de faire un produit cartésien parfois désastreux sur de grandes tables) et le type de matériel (id_type_mat). Tu remarques que le COUNT ne compte pas le nombre total de lignes mais le nombre total de ligne POUR CHAQUE division (grâce au GROUP BY).

PS: attention aux quotes, je ne sais pas quel est le type du champ id_type_mat mais il faut peut etr emettre des double quotes autour de la valeur 2.
0
J'oublie de te dire que ce n'est pas du travail maché car je n'ai pas testé ce que je te dis (mais bon, l'idée est là il me semble !)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
trik59 Messages postés 241 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 17 mai 2012 39
25 janv. 2005 à 13:25
slt alex!
je te remercie bocoup de mavoir repondu et de m'avoir eclairci,
a present je vien d'aprendre des choses que j'ignorai jusk'ici !!

si j'ai des questions je n'esite pas !! :)
a++
0