2014-10-01 56 views
-1
mnum | mname | tnum | tname | note | time 
7788 test1 1133 test2 hi 2014/10/01 
7788 test1 1133 test2 hi2 2014/10/08 
7788 test1 1133 test2 hi3 2014/10/03 
1133 test2 7788 test1 tt2 2014/10/10 
1133 test2 7788 test1 tt3 2014/10/05 
9990 test3 9992 test4 hh1 2014/10/10 
9990 test3 9992 test4 hh1 2014/10/01 

如果我将获得7788上MNUM或tnum,以及独特的和为了按时间倒序MSSQL DISTINCT和排序

select * from xxxx where mnum=7788 

可以得到结果:

7788 2014/10/10 (only one result) 
1133 2014/10/08 (only one result) 
+1

请改写你的问题,因为它是相当困难的现有形式 – epoch 2014-10-01 06:56:25

+0

了解关键忘记DISTINCT关键字 - 这可以用于快速解决问题或在某些COUNT()表达式中使用,但在一般查询中它通常是没有意义的。你可以使用分组,集合函数,窗口函数,CTE - 但首先你已经清楚地描述了你需要的东西(这通常也提示解决方案)。顺便说一句,从您的数据,你的结果是根本无法获得的,因为你的日期是不一致的:) – Arvo 2014-10-01 07:09:58

+0

是的....我不同的mnum,首先是tnum,然后num添加到数组,然后为数组选择num的顺序times desc添加到数组2,然后选择*从表中的数组中键2 ...它可以......但...... – 2014-10-01 08:26:27

回答

0
  1. 采取不同MNUM和tnum
  2. num add to array
  3. 采取从表选择键,其中由次递减NUM秩序,并添加结果到数组2
  4. SELECT * FROM表其中(数组2)