sql - 查询两列以上且其中一列不同的列

标签 sql ms-access-2007

我有一个包含四列的表,并且希望仅基于一列显示不同的输出。我怎样才能做到这一点?

我尝试在 ID 上使用 Max 函数,但它仅适用于两列,任何超过两列的内容都会显示所有记录。

非常感谢任何帮助

--编辑--

示例数据:

ID Name Date    Status
1  Sam  1/1/11    A
2  Sam  2/22/12   A
3  Jill 1/5/10    R
4  Jim  7/2/12    I
5  Jim  5/6/11    I
6  Bob  11/11/12  A
7  Bob  7/26/10   A

输出:

ID Name Date    Status
1  Sam  1/1/11    A
3  Jill 1/5/10    R
4  Jim  7/2/12    I
6  Bob  11/11/12  A

最佳答案

您似乎想要每个 Name 具有最低 ID 值的行中的值。使用 GROUP BY 子查询获取每个 Name 的最小 ID。然后将表INNER JOIN连接到子查询。

SELECT y2.ID, y2.Name, y2.Date, y2.Status
FROM
    YourTable AS y2
    INNER JOIN
        (
            SELECT y.Name, Min(y.ID) AS MinOfID
            FROM YourTable AS y
            GROUP BY y.Name
        ) AS sub
    ON y2.ID = sub.MinOfID

关于sql - 查询两列以上且其中一列不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15976179/

相关文章:

sql - 如何使用 unpivot 函数在其他列中查找最小值来忽略字符串值

mysql - 3 个表之间的 HQL 多对多

mysql - 在另一个嵌套查询中使用嵌套查询结果

sql - 当日期有时间时, Access 查询将不起作用

ms-access - 有没有更高效的方式在一个Form的不同文本框中显示多个查询结果

python - 如何使用 pyodbc 执行 MS Access 中保存的查询

用于根据类型相互比较价格的Mysql查询

asp.net - 我可以在没有 SQL 托管计划的情况下访问 MS Access 文件作为 ASP.NET 站点的数据库吗?

sql - Access 拒绝使用链接表运行查询?

vba - 防止 WebBrowser 控件刷新焦点