如何在我的查询中使用函数最大当前日期

时间:2018-11-17 06:52:48

标签: php mysql subquery

我有2个查询。我想得到MAX date。如果得到MAX date,我的子查询将如下所示。

查询1:

select
   tb_format.format 
from
   tb_format 
where
   tb_format.id not in 
   (
      select
         penyakit.format 
      from
         penyakit 
      where
         penyakit.id_puskesmas =$ id 
         AND MONTH(penyakit.waktu_upload) = MONTH(CURRENT_DATE)
   )

我想在此MAX上添加MONTH(penyakit.waktu_upload)

查询2:

select
   tb_format.format 
from
   tb_format 
where
   tb_format.id not in 
   (
      select
         penyakit.format 
      from
         penyakit 
      where
         penyakit.id_puskesmas =$ id 
         AND MAX(MONTH(penyakit.waktu_upload)) = MONTH(CURRENT_DATE) -- HERE
   )

但是,我遇到一个错误:

Screenshot 1

Screenshot 2

1 个答案:

答案 0 :(得分:0)

您不能在WHERE子句中使用MAX,而可以在HAVING子句中使用{this来说明不同之处...

  select
     penyakit.format 
  from
     penyakit 
  where
     penyakit.id_puskesmas =$ id 
  group by 
     penyakit.format
  having
     MAX(MONTH(penyakit.waktu_upload)) = MONTH(CURRENT_DATE)

必须有一个GROUP BY子句,这为MAX进行操作提供了基础,HAVING子句几乎是GROUP BY的WHERE子句。

不确定$ id是什么,所以我只是从您的原始代码复制而来,但这需要更正。