求查询

argfans 2004-12-09 05:42:26
一个表结构举例如下:
ID(关键字),日期,任务单
数据如下
1 2004-11-11 plm248
2 2004-12-12 plner3
3 2004-11-21 plm248
现在要求查询出来的结果一个任务单只对应一个时间 ,也就是说,把同一任务单中多余的那些记录查询掉,只留一天,
留下的那条,时间可以是最大的时间,也可以是最小的。
请赐教!
...全文
75 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
t4423an 2004-12-09
  • 打赏
  • 举报
回复
sorry!上面插入时忘记打''了.

CREATE TABLE T(日期 DATETIME,
任务单 NVARCHAR(20));

INSERT INTO T VALUES('2004-1-29','PLM248');
INSERT INTO T VALUES('2004-12-12','PLNER3');
INSERT INTO T VALUES('2004-11-11','PLM248');
INSERT INTO T VALUES('2004-11-21','PLM248');


SELECT * FROM T;

SELECT MAX(日期)AS 日期,任务单 FROM T AS T2 GROUP BY 任务单
UNION
SELECT MIN(日期)AS 日期,任务单 FROM T AS T1 GROUP BY 任务单

DROP TABLE T


测试结果:
2004-01-29 00:00:00.000 PLM248
2004-11-21 00:00:00.000 PLM248
2004-12-12 00:00:00.000 PLNER3

t4423an 2004-12-09
  • 打赏
  • 举报
回复
CREATE TABLE T(日期 DATETIME,
任务单 NVARCHAR(20));

INSERT INTO T VALUES(2004-1-29,'PLM248');
INSERT INTO T VALUES(2004-12-12,'PLNER3');
INSERT INTO T VALUES(2004-11-11,'PLM248');
INSERT INTO T VALUES(2004-11-21,'PLM248');


SELECT * FROM T;

SELECT MAX(日期)AS 日期,任务单 FROM T AS T2 GROUP BY 任务单
UNION
SELECT MIN(日期)AS 日期,任务单 FROM T AS T1 GROUP BY 任务单


你看这样行不?
vinsonshen 2004-12-09
  • 打赏
  • 举报
回复
保留最大日期的:
select * from 表 as a where not exists (select * from 表 where 任务单=a.任务单 and 日期>a.日期)
保留最小日期的:
select * from 表 as a where not exists (select * from 表 where 任务单=a.任务单 and 日期<a.日期)
rongming2006 2004-12-09
  • 打赏
  • 举报
回复
up
pbsql 2004-12-09
  • 打赏
  • 举报
回复
select 表.* from 表,(select min(日期) 日期,任务单 from 表 group by 任务单) t
where 表.任务单=t.任务单 and 表.日期=t.日期
子陌红尘 2004-12-09
  • 打赏
  • 举报
回复
select 任务单,max(id) as id,max(日期) as 日期 from 表 group by 任务单

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧