2017-05-31 177 views
0

我有这个问题。 我想不出一个查询发现,一些在我的表中重复值,我想只选择那些有最新/最高扫描日期(标记为黄色) 这里我表名:测试 enter image description here选择最新日期的行

+0

到目前为止您有什么?你怎么能为同一个人有多个最新的扫描日期? –

+0

对不起,但这个数据库不是由我创建的。我有来自同一个人的多个最新扫描日期,所以我应该创建此查询以选择那些Scan_Date – Bombo

+0

由于数据的排序方式,这不是完全重复的。这个问题的关键是处理'GROUP BY'函数中的'SCAN_DATE',这两个重复问题中没有提到 – Tom

回答

1

您需要使用MAX函数和GROUP BY。这应该从您的表中选择最新的SCAN_DATE

SELECT 
    LAST_NAME 
    ,FIRST_NAME 
    ,MAX(SCAN_DATE) 
    ,WEIGHT 
    ,HEIGHT 
FROM Test 
-- If using SQL 
GROUP BY LAST_NAME, FIRST_NAME, CAST(SCAN_DATE AS Date), WEIGHT, HEIGHT 
-- If using MySQL 
-- GROUP BY LAST_NAME, FIRST_NAME, DATE(SCAN_DATE), WEIGHT, HEIGHT 
+0

对不起,但通过这个查询,我得到了我的表的最后一行,而不是黄色标记的行 – Bombo

+0

您可以查看更新。还要更正您的代码,以确定您是使用'sql'还是'mysql',因为它们有不同的语法 – Tom

+0

它的工作原理,非常感谢! – Bombo