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
------解决方案--------------------