我不是MSSQL专业人士,事实上,这让我对微软的一些事情感到失望,但是,嘿,已经够了。我需要运行一个非常简单的查询,在Mysql中它非常简单,但在MSSQL中我无法实现我想要的。
我有一个表,该表包含用户名、密码和一年代码,但是有些帐户是重复的,我需要能够为所有的学生获取最新的结果。
表
username__________password____________yearcode
112211------------dgsvdhsa------------11/12
112211------------dsgvrrhb------------12/13
234543------------36%Sldof------------11/12
344321------------sDDdesSs------------11/12
234543------------plOKjwDS------------12/13期望输出
username__________password____________yearcode
112211------------dsgvrrhb------------12/13
344321------------sDDdesSs------------11/12
234543------------plOKjwDS------------12/13任何帮助,这将是非常感谢的,我已经尝试按用户名分组,我得到聚合函数错误。我尝试了不同的方法,但没有达到预期的效果。
谢谢您的帮助,下面是最后的解决方案:
SELECT *
FROM
(
SELECT t.*,
ROW_NUMBER() OVER (PARTITION BY PERSON_CODE ORDER BY SessionCode DESC) rnum
FROM table.dbo.Students t
WHERE t.FORENAME LIKE '%$user%' OR t.SURNAME LIKE '%$user%' OR t.PERSON_CODE LIKE '%$user%'
) q其中rnum =1
发布于 2014-01-24 08:32:17
看起来您需要最新yearcode的条目。
在普通SQL中,我会这样做:
select * from table t1 where yearcode =
(select max(yearcode) from table t2 where t1.username = t2.username );发布于 2014-01-24 08:31:58
使用此查询,它将适用于您的条件,
SELECT DISTINCT(username),password,yearcode
FROM Table1 t;https://stackoverflow.com/questions/21327690
复制相似问题