Une requete qui renvoie NULL

Résolu
fzed51 Messages postés 10 Date d'inscription dimanche 23 novembre 2003 Statut Membre Dernière intervention 10 septembre 2007 - 20 mai 2007 à 01:29
fzed51 Messages postés 10 Date d'inscription dimanche 23 novembre 2003 Statut Membre Dernière intervention 10 septembre 2007 - 20 mai 2007 à 15:58
SELECT  SUM((HOUR(Fin)*60+MINUTE(Fin))-(HOUR(Debut)*60+MINUTE(Debut))) FROM horaire WHERE (WEEK(Date, 1)=1);

Cette requète doit renvoyer la somme (en minute) de periode de la semaine 1.
Cette requète me renvoie NULL. je ne comprend pas. à la limite elle renvoie 0.
J'ai déjà testé la fonction qui se trouve dans SUM. Apparamment j'ai un problème avec SUM et WEEK. qq'un peut me dire pourquoi? Merci d'avance.

CREATE TABLE `horaire` (
  `Id` int(8) NOT NULL auto_increment,
  `Date` date NOT NULL default '0000-00-00',
  `Debut` time NOT NULL default '00:00:00',
  `Fin` time NOT NULL default '00:00:00',
  PRIMARY KEY  (`Id`),
  UNIQUE KEY `Date` (`Date`,`Debut`,`Fin`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=162 ;

Ceci est la structure de ma table.

#include <<fzed51>></fzed51>

1 réponse

fzed51 Messages postés 10 Date d'inscription dimanche 23 novembre 2003 Statut Membre Dernière intervention 10 septembre 2007
20 mai 2007 à 15:58
Bon alors vu que vous êtes un peu long à me répondre, J'ai continué à chercher dans mon coint. Et devinnez quoi 'ai trouvé.

Ma requête done au final :


SELECT WEEK(Date, 1) AS Sem, SUM(HOUR(Fin)*60+MINUTE(Fin) - HOUR(Debut)*60+MINUTE(Debut)) AS Diff
  FROM horaire
    WHERE YEAR(Date) = 2007
  GROUP BY Sem

ça a l'air de fonctionner.
Merci si vous vous êtes déjà panché sur la question.

La solution est quand on utilise SUM ou d'autre fonction on est obligé d'utiliser GROUP BY.

#include <<fzed51>></fzed51>
3
Rejoignez-nous