当前位置: 代码迷 >> Sql Server >> 怎么得到小弟我所要求的结果呢?多几种方式或者多条语句也行
  详细解决方案

怎么得到小弟我所要求的结果呢?多几种方式或者多条语句也行

热度:94   发布时间:2016-04-27 18:58:36.0
如何得到我所要求的结果呢?多几种方式或者多条语句也行
select   Job_id,Job_name,Com_id,Com_name,startdate  
from   ed_job   order   by   startdate   desc
------------------------------------
947 文员/前台接待 4517 aaaaaaaaa公司 2007-04-26   11:10:04.000
949 电脑员 4517 aaaaaaaaa公司 2007-04-26   11:10:04.000
950 储备干部 4517 aaaaaaaaa公司 2007-04-26   11:10:04.000
941 文员 4509 bbbbbbb公司 2007-04-26   10:05:19.000
987 营业员 4509 bbbbbbb公司 2007-04-26   10:05:19.000
988 电脑员 4509 bbbbbbb公司 2007-04-26   10:05:19.000
989 储干 4509 bbbbbbb公司 2007-04-26   10:05:19.000
990 送货员 4509 bbbbbbb公司 2007-04-26   10:05:19.000
991 手机学徒 4509 bbbbbbb公司 2007-04-26   10:05:19.000
960 客服经理 4536 cccccccccccc集团 2007-04-26   09:39:52.000
961 客服专员 4536 cccccccccccc集团 2007-04-26   09:39:52.000
998 采购文员/跟单文员 4604   eeeeeeeeee会社 2007-04-25   15:31:54.000
993 商务、外贸专员 4571 fffffffffff公司 2007-04-22   17:55:25.000
994 储备干部 4571 fffffffffff公司 2007-04-22   17:55:25.000
995 营销业务专员 4571 fffffffffff公司 2007-04-22   17:55:25.000
996 文员 4571 fffffffffff公司 2007-04-22   17:55:25.000
997 各部门助理 4571 fffffffffff公司 2007-04-22   17:55:25.000
986 平面设计 3999 wwwwwwwww公司 2007-04-19   22:44:55.000
331 网页设计 3999 wwwwwwwww公司 2007-04-19   22:44:55.000
362 兼职商务代表 3999 wwwwwwwww公司 2007-04-19   22:44:55.000
979 仓管 4540 rrrrrrrrrrrr公司 2007-04-17   10:29:05.000
980 普工 4540 rrrrrrrrrrrr公司 2007-04-17   10:29:05.000

不清楚前任谁这么设计的表,为什么要使用order   by   DateTime类型的字段,这样速度会很慢。而且,搞不懂为什么微秒都是0呢?
在这个职位表里面,先插入的数据(从日期可以看出来),但是它的Job_id这个主键值居然比后插入的数据的Job_id值还大。搞不清楚。

我希望得到下面的结果(每个公司查前三条,按照日期排序):
Com_id     Com_name                   Job_id1   Job_name1           Job_id2         Job_name2         Job_id3         Job_name3         startDate
4517         aaaaaaaaa公司         947           文员/前台接待   949                 电脑员                   950           储备干部           2007-04-26
...   ...
4536         cccccccccccc集团   960           客服经理             961                 客服专员               null             null                 2007-04-26
...   ...
4540         rrrrrrrrrrrr公司   979           仓管                     980                 普工                       null               null               2007-04-17

通过不管多少条语句,存储过程,函数等,能够得到这种结果也行。

谢谢!



------解决方案--------------------
select
Job_id,Job_name,Com_id,Com_name,startdate
from
ed_job t
where
t.Job_id in (select top 3 Job_id from ed_job where Com_id=t.Com_id order by startdate desc)
order by
t.startdate desc
------解决方案--------------------
  相关解决方案