【问题标题】:How to take the function max current-date on my query [closed]如何在我的查询中使用函数 max current-date [关闭]
【发布时间】:2018-11-17 06:52:48
【问题描述】:

我有 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)
   )

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

查询 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
   )

但是,我收到一个错误:

【问题讨论】:

  • 请添加一些示例数据和预期输出。添加有关您在逻辑上尝试实现的目标的详细信息。基于该信息,可以以更有效的方式重新制定查询。请浏览此链接一次:Why should I provide an MCVE for what seems to me to be a very simple SQL query?
  • 请显示代码和/或说明错误。图片上的文字太小,有些人看不懂。此外,图片上的文字无法被搜索引擎索引以供未来访问者使用。

标签: php mysql subquery


【解决方案1】:

您不能在 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 是什么,所以我只是从您的原始代码中复制过来的,但这需要更正。

【讨论】:

  • 谢谢。我不知道 MAX 不能在哪里使用子句。非常有帮助 。谢谢兄弟
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-09
  • 1970-01-01
  • 2020-11-01
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多