Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取一个字段不为空的最新记录_Sql_Ms Access - Fatal编程技术网

Sql 获取一个字段不为空的最新记录

Sql 获取一个字段不为空的最新记录,sql,ms-access,Sql,Ms Access,我希望缩小我的数据库范围,使其只有最多的记录。最新记录需要在特定字段中具有值 ID Account_nbr Date Name 1 622 7/10/2018 Stu 2 622 7/24/2018 3 151 7/18/2018 Taylor 4 151 7/24/2018 Taylor 这是数据库的一个示例。 我希望代码能够做到这一点: ID Account_nbr Date Name 1 622

我希望缩小我的数据库范围,使其只有最多的记录。最新记录需要在特定字段中具有值

ID  Account_nbr Date    Name
1   622     7/10/2018   Stu
2   622     7/24/2018   
3   151     7/18/2018   Taylor
4   151     7/24/2018   Taylor
这是数据库的一个示例。 我希望代码能够做到这一点:

ID  Account_nbr Date    Name
1   622     7/10/2018   Stu
4   151     7/24/2018   Taylor
我尝试了以下代码:

Select m.*
FROM [table] m
 INNER JOIN 
(
SELECT last(Date) as LatestDate
,account_nbr
FROM [table]
WHERE Name IS NOT NULL
    GROUP BY account_nbr
) b 
ON m.Date = b.LatestDate
AND m.account_nbr = b.account_nbr
输出仅包括最近的日期,未考虑名称字段中为空的记录。

我会:

select t.*
from table as t
where t.name is not null and
      t.date = (select max(t1.date)
                from table as t1
                where t1.account_nbr = t.account_nbr
               );
试试这个:

Select 
    m.*
From 
    [table] As m
Where
    m.[Date] In
        (Select Max([Date])
        From [table] As T
        Where T.[Name] Is Not Null 
            And T.account_nbr = m.account_nbr)

标记您正在使用的DBMS(即
MySQL
SQL Server,
等)。哪个DBMS SQL Server,oracle等?窗口函数和通用表表达式可用吗?