-2

我有 2 个表,一个(访问)和另一个(患者)与 mysql(患者)的关系是 PK 作为 patients.pid 和 visit.pid 作为索引,我想在我的 vb.net 应用程序中使用代码来获得最后一个日期时间记录以检查患者是否仍在医院内入院或出院到目前为止,我在你们的帮助下获得了此代码

SELECT a.pid,MAX(ISNULL(b.sdat,'1901-01-01')),MAX(ISNULL(b.edat,'1901-01-01')) from patients a left join visits b on a.pid=b.pid Where ddatediff(now(),b.edat) <=365 group by a.pid

但是当我使用 php myadmin 或其他应用程序在 sql builder 中执行时出现错误(1582 - 调用本机函数 'ISNULL' 时参数计数不正确)我试图找出错误原因,但直到现在还没有运气

4

1 回答 1

2

MySQLISNULL()是一个比较函数,它接受一个参数,1如果是则返回NULL。我认为你的意思是IFNULL()——或者更标准的COALESCE()

我还建议将检查移到聚合函数之外,以提高效率:

COALESCE(MAX(b.sdat),'1901-01-01'),
COALESCE(MAX(b.edat),'1901-01-01')
于 2020-05-31T20:25:59.167 回答