|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 836 ![]() |
Voila je reviens avec mon script de gestion de mes kms parcourus (ACC
Voila un bout de ma table simplifiée : id kms circonstance 1 12 Nuit 2 15 3 15 Brouillard 4 15 Neige J'aimerai le total des kilometres en fonction des criconstances sachant QUE un champ circonstance vide equivaut a Beau Temps, ET neige, brouillard,... equivaut a Mauvais Temps, et nuit ben ... a Nuit lol J'imagine qu'il va falloir utiliser SUM SELECT et GROUP BY mais la je bute sur la requete (et ca me prend la tete La page est visible ici Merci de m'aider
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Étudiant Inscription : juillet 2006 Messages : 242 ![]() |
Salut !
A défaut de savoir le faire dans une requête SQL je le ferai dans une procédure stockée avec des IF en fait. Mais je pense qu'il doit exister une solution avec des CASE dans le SELECT. Mais je n'ai jamais effectué ce genre de requêtes.
__________________
La vitesse de la lumière étant supérieure à la vitesse du son, certaines personnes brillent encore tant qu'elles n'ont pas parlé ----------------------------------------------------------- Retrouvez mes articles informatique sur mon Site Developpez. Le reste, sur le Site perso ! |
|
|
00
|
|
|
#3 | |
|
Membre Expert
![]() Inscription : juillet 2004 Messages : 1 033 ![]() |
Citation:
La solution simple, SELECT SUM(kms) as Km FROM tatable GOUP BY circonstance Je ne l'ai pas testé mais bon se devrait être sa. Après pour faire les équivalence texte d'IHM <-> texte en base, fais le en php. Le texte d'IHM n'à a priori pas à être géré au niveau du sgbd dans cette exemple. ----------------------- édit Au fais pourquoi beau temps ne s'appelle pas beau temps dans la table ? Tant que j'y suis pourquoi ne pas avoir créé une table de circonstances ? bbye |
|
|
|
00
|
|
|
#4 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Citation:
Ceci serait encore mieux vu les données contenues : Code :
SELECT IFNULL(circonstance, 'Beau temps'), SUM(kms) as Km FROM tatable GOUP BY circonstance Citation:
|
||
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : juillet 2004 Messages : 1 033 ![]() |
Et oui je suis trop habitué à Mysql :/ C'est bien le genre de règle auquel je ne ferai qu'en souffrant.
|
|
|
00
|
|
|
#6 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Ah ben... j'ai tellement souffert avec d'autres SGBD que je n'ai jamais remarqué que MySQL permettait cela
Comme quoi, il vaut mieux prendre directement les bonnes habitudes
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : juillet 2004 Messages : 1 033 ![]() |
Mysql c'est un peu comme PHP on peut faire un tas de truc qui ne ressemble à rien sans même sans rendre compte
|
|
|
00
|
|
|
#8 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
@Elwyn :
Je pense que cette requête te plaira, même si le cas du NULL la rend assez crade Code :
|
||
|
|
00
|
|
|
#9 | ||
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 836 ![]() |
Tout d'abord merci de toutes ces reponses
Biglo je ne comprend pas ta requete car certains nom de variables dedans ne sont pas dans ma table (ex : t.temps, ...) Voici ma table : Code :
Code :
$total_kms_par_voiture = mysql_query("SELECT voiture, SUM(kms) AS total_kms FROM conduite GROUP BY voiture"); Mais je reviens aujourd'hui pour autre chose, vous avez compris mon probleme, mais pour repondre aux questions : si remarques est vide, ca signifi R.A.S (je vais pas a chaque fois marquer Beau Temps ... ) et donc Beau Temps. Je veux donc savoir combien de kilometres j'ai parcouru par : Beau temps, Mauvais Temps et Nuit Sachant que : Beau Temps = Champ remarques vide Nuit = Nuit dans champ remarques Mauvais Temps = Neige ou Pluie ou Brouillard dans remarques Voila en esperant vous avoir clairement expliqué mon probleme. PS : Dsl Biglo si ta requete etait bonne mais je l'ai pas comprise
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... |
||
|
|
00
|
|
|
#10 | ||||||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Première remarque, quand tu disais "un champ circonstance vide equivaut a Beau Temps", je pensais que ça voulait dire que ce champ était à NULL. Apparemment, tu voulais dire que c'était une chaîne vide. Il va donc falloir modifier un peu la requête que je t'ai donnée.
Pour ma requête, t.temps et t.total_tmp ne sont pas dans ta table et c'est normal. Ce sont des alias créés dans le deuxième SELECT. La requête fonctionne ainsi : Le SELECT imbriqué va "renommer" la condition météo : brouillard -> mauvais temps, nuit -> nuit, NULL -> beau temps. Et en plus de cela, il va calculer la somme de kms pour chaque circonstance entrée. Donc il va calculer le nombre de kms parcourus dans le brouillard, dans la nuit, etc. Avec ton exemple, il renvoie ceci : Code :
Code :
La requête remaniée : Code :
|
||||||
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 836 ![]() |
Alors la bravo et merci !
Par contre, il y a encore un petit probleme Si rien => Beau Temps Si nuit => Nuit Sinon => Mauvais Temps Or dans la case remarques il peut y avoir : bouchons,problemes,... qui ne sont pas du mauvais temps (donc j'imagine que le si pratique else va devoir etre changé Tu peux voir ma page ici : http://francallais.free.fr/conduite.php pour te rendre compte Et mauvais temps peut etre du a : Pluie,Grele,Brouillard,Neige (c'est pas trop j'espere
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... |
|
|
00
|
|
|
#12 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
En effet, j'ai supposé qu'il y avait toujours des remarques sur le climat. Il te faudra donc d'autres conditions dans le CASE.
Ce qui m'étonne par contre, c'est que tu ne peux pas avoir "bouchons + pluie" (par exemple) ? Enfin bon, c'est toi qui sais ce dont tu as besoin dans ta base. |
|
|
00
|
|
|
#13 | ||
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 836 ![]() |
Merci encore ! Je viens de me rendre compte que j'utilisais que 5% de tout Mysql ...
Je peux faire ca : Code :
PS : Et si il y a bouchons + pluie je fais comment ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... |
||
|
|
00
|
|
|
#14 | |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Tu peux faire ça mais tu auras toujours "Mauvais temps" pour bouchons et autres
Citation:
|
|
|
|
00
|
|
|
#15 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 836 ![]() |
Ouai mais non je vais pas pousser c'est juste un script banal
Merci pour tout ! A bientot
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com