2017-08-09 56 views
0

我想要计算预填充的工资核算周的开始日期和结束日期与输入的工资核算周的开始日期和结束日期相匹配的行数。计算与工资核算期间相关的工资单周的行数

我有什么至今:

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(); 
+0

我至今返回$此 - > _ EM - >的createQuery(” 选择用PW comtwclagripayrollBundle:Payrollweek PW WHERE pw.startdate =:STARTDATE 和pw.enddate <=:结束日期 ') - > setParameter('startdate',$ startdate) - > setParameter('enddate',$ enddate) - > getResult(); } – Sue

回答

0

添加COUNT到您的查询,并通过一个大于或等于比较更换平等的第一次约会。

请注意,您可以使用BETWEEN而不是此双重比较。

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(); 
+0

如果两个结果getOneorNullResult()仍然有效,该怎么办 – Sue

+0

“COUNT”最多返回1个结果。 – Veve

+0

我收到一个错误,说错误:调用一个成员函数setPayrollperiodid()在字符串@这行在控制器** $ pWeek-> setPayrollperiodid($ entity); ** – Sue