Search code examples
symfonydql

Count rows of payroll week that relate to a payroll period


I would like to count the number of rows that start date and end date of payroll week prepopulated matches the start date and end date of the payroll week entered.

What I have so far:

return $this->_em ->createQuery(' SELECT pw FROM comtwclagripayrollBundle:Payrollweek pw WHERE pw.startdate = :startdate AND pw.enddate <= :enddate ')
            ->setParameter('startdate', $startdate)
            ->setParameter('enddate', $enddate)
            ->getResult();

Solution

  • Add a COUNT to your query and replace the equality to the first date by a greater or equal comparison.

    Note that you can use BETWEEN instead of this double comparison.

    return $this->_em ->createQueryBuilder()
                ->select('COUNT(pw)')
                ->from('comtwclagripayrollBundle:Payrollweek', 'pw')
                ->where('pw.startdate >= :startdate AND pw.enddate <= :enddate ')
                ->setParameter('startdate', $startdate)
                ->setParameter('enddate', $enddate)
                ->getQuery()
                ->getOneOrNullResult();