Fonction SQL SUM

LaChaux78 Messages postés 565 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 octobre 2024 - 24 oct. 2024 à 17:25
LaChaux78 Messages postés 565 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 octobre 2024 - 24 oct. 2024 à 20:42

Bonjour, je souhaiterai additionner des valeurs stockée dans une colonne et regroupé par année. Je ne parviens pas à mettre en place la fonction SUM dans ma requête existante. Je vous remercie pour votre aide.

Voici une capture de ma table qui est concerné c'est le champs km.

Voici ma requête.

	$sql = "SELECT idfrais, bag_fraiskm.idtrajet, dtrajet, bag_fraiskm.km, bag_trajet.idtrajet, libelle, bag_trajet.km
		FROM bag_fraiskm
			LEFT JOIN bag_trajet ON bag_trajet.idtrajet = bag_fraiskm.idtrajet
		WHERE YEAR(bag_fraiskm.dtrajet) = '$annee'
		ORDER BY dtrajet ASC";
	$result = executeQuery($sql,$datas);
	
	$nblignes = $result->rowCount();
	
	echo '<div class="nb_trajet"><h1>Liste de déplacements&nbsp;'.$annee.'&nbsp;Soit&nbsp;'.$donnees->totalkm.'Km</h1>';
	echo '<table width="80% border="0" cellpadding="0" cellspacing="0">';
	echo '<tr><td colspan="3" height="20" class="note">Année '.$annee.'</td><tr>';
	echo '<tr><td class="c2" height="20">Date</td><td class="c2" height="20">Trajet</td><td class="c2" height="20">km</td></tr>';

	if($nblignes) {
	
		while ($donnees = $result->fetch()) {
			echo '<tr>';
			echo '<td class="c3" height="20">'.dateFR($donnees->dtrajet).'</td>';
			echo '<td class="c3" height="20">'.$donnees->libelle.'</td>';
			echo '<td class="c3" height="20">'.$donnees->km.'</td>';
			echo '</tr>';
		}
	
	} else {
		echo '<tr><td colspan="2" class="no">Pas de saisie en '.$annee.'</td></tr>';
	}
		echo '</table>';
		echo '<p>Choisir une autre année : <input type="text" name="annee" size="4">';
		echo '<input type="submit" name="submit" value="Afficher"></p>';
		echo '</div>';
A voir également:

2 réponses

jee pee Messages postés 40360 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 24 octobre 2024 9 390
24 oct. 2024 à 19:12

Bonjour,

Quand on utilise SUM(), on ne peut pas avoir les lignes détails. Que veux tu additionner ? Pour les kms par année ce pourrait être :

SELECT YEAR(bag_fraiskm.dtrajet) AS ANNEE, SUM(bag_trajet.km) AS TOTAL_KM
FROM bag_fraiskm
LEFT JOIN bag_trajet ON bag_trajet.idtrajet = bag_fraiskm.idtrajet
GROUP BY ANNEE;

Je te conseille de d’abord tester les requêtes dans mysqladmin pas directement dans php


0
LaChaux78 Messages postés 565 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 24 octobre 2024 32
24 oct. 2024 à 20:42

Bonjour, merci pour ton aide, j'ai testé ta requête dans phpmyadmin et c'est bien ce que je voulais.

Maintenant je vais essayer de l'adapter dans ma page. Que veux tu dire

Quand on utilise SUM(), on ne peut pas avoir les lignes détails

Merci

0