À priori avec :

public function getAbsencesMensuelles($year){
    $q = Doctrine_Query::create()
      ->select('
        at.label,
        sum(if(month(a.startdate)=1, 1, 0)) AS Janvier,
        sum(if(month(a.startdate)=2, 1, 0)) AS Fevrier,
        sum(if(month(a.startdate)=3, 1, 0)) AS Mars,
        sum(if(month(a.startdate)=4, 1, 0)) AS Avril,
        sum(if(month(a.startdate)=5, 1, 0)) AS Mai,
        sum(if(month(a.startdate)=6, 1, 0)) AS Juin,
        sum(if(month(a.startdate)=7, 1, 0)) AS Juillet,
        sum(if(month(a.startdate)=8, 1, 0)) AS Aout,
        sum(if(month(a.startdate)=9, 1, 0)) AS Septembre,
        sum(if(month(a.startdate)=10, 1, 0)) AS Octobre,
        sum(if(month(a.startdate)=11, 1, 0)) AS Novembre,
        sum(if(month(a.startdate)=12, 1, 0)) AS Decembre
      ')
      ->from('AbsenceType at, at.Absences a')
      ->where('a.person_id = ?', $this->getId())
      ->andWhere('a.year = ?', $year)
      ->groupBy('at.id');

    return $q->execute(array(), Doctrine_Core::HYDRATE_ARRAY);
  }

c'est tout à fait ce que je cherche, merci beaucoup !!!

Cyril FLIELLER



Le 20 avril 2011 17:34, Jérémy LEHERPEUR <jer...@leherpeur.net> a écrit :

> Salut,
> Tu fais un hydrate_array et tu accede via les clés de tableau.
> nan ?
>
> Le 20 avril 2011 17:32, Cyril FLIELLER <cyril.fliel...@gmail.com> a écrit
> :
>
>> Hello,
>>
>> Pour un besoin particulier, j'ai effectué un pivot mysql (donc à la main
>> car il n'y a pas de fonctions dédiées). À l'arrivée, je veux envoyer les
>> données récoltées en Json. Seulement, je ne sais pas vraiment à quoi
>> ressemble l'objet retournée par la requête.
>>
>> Voici la méthode :
>>
>> public function getAbsencesMensuelles($year){
>>     $q = Doctrine_Query::create()
>>       ->select('
>>         at.label,
>>         sum(if(month(a.startdate)=1, 1, 0)) AS Janvier,
>>         sum(if(month(a.startdate)=2, 1, 0)) AS Fevrier,
>>         sum(if(month(a.startdate)=3, 1, 0)) AS Mars,
>>         sum(if(month(a.startdate)=4, 1, 0)) AS Avril,
>>         sum(if(month(a.startdate)=5, 1, 0)) AS Mai,
>>         sum(if(month(a.startdate)=6, 1, 0)) AS Juin,
>>         sum(if(month(a.startdate)=7, 1, 0)) AS Juillet,
>>         sum(if(month(a.startdate)=8, 1, 0)) AS Aout,
>>         sum(if(month(a.startdate)=9, 1, 0)) AS Septembre,
>>         sum(if(month(a.startdate)=10, 1, 0)) AS Octobre,
>>         sum(if(month(a.startdate)=11, 1, 0)) AS Novembre,
>>         sum(if(month(a.startdate)=12, 1, 0)) AS Decembre
>>       ')
>>       ->from('AbsenceType at, at.Absences a')
>>       ->where('a.person_id = ?', $this->getId())
>>       ->andWhere('a.year = ?', $year)
>>       ->groupBy('at.id');
>>
>>     return $q->execute();
>> }
>>
>> du coup, comment accéder aux attributs de l'objet nouvellement créé ?
>>
>> Cyril FLIELLER
>>
>>  --
>> Vous recevez ce message, car vous êtes abonné au groupe Google
>> Groupes Symfony-fr.
>> Pour envoyer un message à ce groupe, adressez un e-mail à
>> symfony-fr@googlegroups.com.
>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
>> symfony-fr+unsubscr...@googlegroups.com.
>> Pour plus d'options, consultez la page de ce groupe :
>> http://groups.google.com/group/symfony-fr?hl=fr
>>
>
>
>
> --
> Jérémy LEHERPEUR
> jer...@leherpeur.net
>
>  --
> Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes Symfony-fr.
> Pour envoyer un message à ce groupe, adressez un e-mail à
> symfony-fr@googlegroups.com.
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> symfony-fr+unsubscr...@googlegroups.com.
> Pour plus d'options, consultez la page de ce groupe :
> http://groups.google.com/group/symfony-fr?hl=fr
>

-- 
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail 
à symfony-fr@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
symfony-fr+unsubscr...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à