SQL besoin d'un coup de main sur une requete svp (och). - SQL/NoSQL - Programmation
Marsh Posté le 17-10-2003 à 12:59:48
id_cat jointure entre tache et categorie mais ...
Il te manque la jointure entre categorie et surcat
à priori ...
Marsh Posté le 17-10-2003 à 13:37:18
au lieu de poster ton code PHP (illisble) tu peux pas poster ta requête bien formattée, et avec des retours à la ligne ?
Marsh Posté le 17-10-2003 à 21:32:59
Bon ben ça donne ça en + clair...
Code :
|
ok
Code :
|
là pas OK...
pourquoi tu fais le lien sur
Code :
|
alors que tu as l'air d'avoir un id_surcat plus pratique ???
Marsh Posté le 17-10-2003 à 21:39:49
je pense vraiment que ça coince là comparer id_surcat à surcat je comprends pas ...
Code :
|
Marsh Posté le 20-10-2003 à 11:12:46
merci pour votre aide...
faut pas etre choqué, le champs categorie.surcat correspond à surcat.id_surcat (j'ai juste pas nommé les champs pareil) .
Bon actuellement j'ai laissé tomber les jointures, je fais 3 requetes imbriquées ( : o )
Marsh Posté le 20-10-2003 à 11:22:00
Voilà, normalement, ça donne ça :
select sum(tache.duree) as duree, t.id_cat, c.id_cat, c.surcat, c.id_surcat |
PS: la table surcat est inutile, puisque tu connais l'id_surcat, qui est dans categorie.
Marsh Posté le 20-10-2003 à 13:53:49
MagicBuzz a écrit : Voilà, normalement, ça donne ça :
|
Cool merci !! La table surcat me sert juste à récupérer le nom de la surcat .
Donc mon pb c'etait juste une histoire de group by ??
@+
Marsh Posté le 20-10-2003 à 15:22:00
je pense oui.
si tu rajoute surcat dans la requête, ajoute une ligne :
and s.curcat = c.surcat
Marsh Posté le 17-10-2003 à 10:56:40
a tous,
ca fait longtemps que j'ai pas pratique sql et la je galere...
je cherce a faire une requete qui me relie 3 tables : tache, categorie et surcat .
une tache comporte un champ id_cat qui existe également dans la table categorie . Une categorie appartient également à une surcatégorie .
ce que je souhaite c'est récupéré toutes les taches qui appartiennent à une catégorie ayant une surcatégorie définnie .
pour l'instant j'ai ca mais ca deconne :
//Parcours la table surcat et calcule la somme des durees des taches appartenant a cette surcat
$sql2="select * from surcat order by nom asc";
$resu2=mysql_query($sql2);
while($nb2=mysql_fetch_array($resu2))
{
echo " <strong>$nb2[nom] : </strong> ";
$sql3="select sum(tache.duree) as duree , tache.id_cat , categorie.id_cat , surcat ,id_surcat from tache , categorie , surcat where date_cloture > '$mois-01 00:00:00' and date_cloture < '$mois-31 23:59:59' and affectee<>8 and (tache.id_cat=categorie.id_cat AND categorie.surcat='$nb2[id_surcat]') group by surcat";
$resu3=mysql_query($sql3) or die (mysql_error());
$nb3=mysql_fetch_array($resu3);
$temps=round($nb3[duree]);
$prop=$temps*100/$total;
echo " $temps heures soit <strong>$prop % du total </strong><br>";
}
la somme des durees de la 1ere surcat depasse la duree totale (j'ai l'impression que j'obtiens le double de ce que je devrais avoir) donc ma requete doit etre complement foireuse mais je vois pas trop comment faire...
merci de votre aide !
Message édité par kayasax le 17-10-2003 à 11:06:15