SELECT Horaire.iemployeeid, sum( Horaire.n100+ Horaire.n120),; sum( Horaire.n100_2+ Horaire.n120_2), MAX(PADR( Pause.cnom,20)),; MAX(PADR( Pause_a.cnom,20)); FROM ; amline!Pause ; LEFT OUTER JOIN amline!Horaire ; ON Pause.iid = Horaire.cpauseid2 ; LEFT OUTER JOIN amline!Pause Pause_a ; ON Horaire.cpauseid = Pause_a.iid; WHERE Horaire.ddate BETWEEN {^2005/04/01} and {^2005/04/30}; GROUP BY Horaire.iemployeeid >/PRE> Give me a bad result ! I think that union is perhaps essential ? Horaire.dbf n100 ------------------------> Pause.dbf ( cpauseid) first pause n100_2 ------------------------> pause.dbf ( cpauseid2 ) second pause How can i have sum( n100 ) + sum( n100_2 ) per employeeid ? >>I try it... >> >>i must verify... >> >><PRE> >> >> SELECT H.iemployeeid ,; >> COUNT(*) totaljo ,; >> SUM( IIF( INLIST( .F. , E.Lassimilinami , P.Iassimilid , P2.Iassimilid ) , H.n100 + H.n100_2 + H.n120 + H.n120_2 , 0.00 )) totHoNAs ,; >> SUM( IIF( E.Lassimilinami = .T. AND ( P.Iassimilid = .T. OR P2.Iassimilid = .T. ) , H.n100 + H.n100_2 + H.n120 + H.n120_2 , 0.00 )) totHoAs ; >> FROM ; >THIS DOUBLE INNER IS USELESS > > Horaire H INNER JOIN PAUSE P ON H.cpauseid = P.iid ; > INNER JOIN PAUSE P2 ON H.cpauseid = P2.iid ; > >YOU MAKE A TYPO ERROR >YOU THINK THIS > Horaire H INNER JOIN PAUSE P ON H.cpauseid = P.iid ; > INNER JOIN PAUSE P2 ON H.cpauseid2 = P2.iid ; > >BUT THIS CANNOT WORK BECAUSE FOR WORK H.cpauseid AND H.cpauseid2 shoukd match > >try this: > Horaire H LEFT JOIN PAUSE P ON H.cpauseid = P.iid ; > LEFT JOIN PAUSE P2 ON H.cpauseid2 = P2.iid ; >and overridde the Iassimilid nulls >( remember the rule NULL OR .T. is .T. and NULL AND .F. is .F.) >