Eduardo, Thanks for the reply, but I still get only one record for prj1. While prj2 does not show up with 0 hours. CREATE TABLE PROJECT ( ID_PROJECT int(11) NOT NULL auto_increment, NM_PROJECT varchar(255) NOT NULL default '' PRIMARY KEY (ID_PROJECT) ) TYPE=MyISAM; INSERT INTO PROJECT VALUES (100,'prj1'); INSERT INTO PROJECT VALUES (101,'prj2'); CREATE TABLE DAYLOG ( ID_PROJECT int(11) NOT NULL default '0', DATE datetime NOT NULL default '0000-00-00 00:00:00', HOURS float NOT NULL default '0', PRIMARY KEY (ID_PROJECT,DATE) ) TYPE=MyISAM; INSERT INTO DAYLOG VALUES (100,'2002-08-17 00:00:00',8); INSERT INTO DAYLOG VALUES (100,'2002-08-18 00:00:00',8); Thanks, -Manu |--------+---------------------------> | | Eduardo Stopa | | | <eduardos@comolat| | | ti.com.br> | | | | | | 09-08-02 04:25 PM| | | | |--------+---------------------------> >-----------------------------------------------------------------------| | | | To: manu manickalal/PRTGROUP | | cc: | | Subject: RES: Aggregate + left outer join | >-----------------------------------------------------------------------| Hi, Try the following query : SELECT p.id_project, p.nm_project, sum( dl.hours) FROM PROJECT p LEFT OUTER JOIN DAYLOG dl ON (p.id_project = dl.id_project) WHERE (MONTH(dl.DATE) = 8 AND (YEAR(dl.DATE) = 2002) or (dl.DATE is NULL) GROUP BY p.id_project Best Regards Eduardo ----- Mensagem original ----- De: [EMAIL PROTECTED] [SMTP:[EMAIL PROTECTED]] Enviada em: sexta-feira, 9 de agosto de 2002 17:13 Para: [EMAIL PROTECTED] Assunto: Aggregate + left outer join Hi, I am relatively new to MySQL.. I am having trouble getting an aggregate function and an outer join to work together. I have two tables PROJECT (id_project, nm_project) 100, prj1 101, prj2 DAYLOG (id_project, date, hours) 100, 2002-08-17, 8 100, 2002-08-18, 8 DAYLOG table contains number of hours booked against a project for a date. I needed to list the total hours booked against each project for any given month. My query SELECT p.id_project, p.nm_project, sum( dl.hours) FROM PROJECT p LEFT OUTER JOIN DAYLOG dl ON (p.id_project = dl.id_project) WHERE MONTH(dl.DATE) = 8 AND YEAR(dl.DATE) = 2002 GROUP BY p.id_project +------------+------------+------------------------------------+ | id_project | nm_project | sum( dl.hours) | +------------+------------+------------------------------------+ | 100 | prj1 | 16 | +------------+------------+------------------------------------+ The problem with this result set is that it does not have projects with zero hours booked. ie. . if there are no records in DAYLOG, then that project is not displayed. I was expecting the left outer join to pick up records (prj2) from PROJECT even if there are no records in DAYLOG. So I tried another variation with the select SELECT p.id_project, p.nm_project, sum( dl.hours)+ IFNULL(dl.hours,0) added the IFNULL. Yet the query lists only projects which have records for the given month. Any insight, help, thoughts etc are greatly appreciated. Thanks, -Manu --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php