寻求一SQL,牛人帮忙,给思路也行。

shuai45 2011-04-22 12:53:27
id name1 name2 createTime
1 a 2011-04-04 14:50
2 a 2011-04-04 14:52
3 a 2011-04-04 14:20
4 b 2011-04-04 11:12
5 b 2011-04-04 11:11
6 f 2011-04-03
7 g 2011-04-02
8 k 2011-04-01



要求结果:
id name1 createTime
1 a 2011-04-04 14:50
4 b 2011-04-04 11:11
6 f 2011-04-03
7 g 2011-04-02
8 k 2011-04-01

我文字表带不清楚,所以 就列出来。对了是MYSQL的数据库。不过可以给个实现思路啥的。
...全文
148 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuandalin 2011-07-23
  • 打赏
  • 举报
回复
name 2 呢
hanrenwowo 2011-06-07
  • 打赏
  • 举报
回复
题意为id不变,删除name2字段,再删除id为2,3,5条记录,然后查询出来
hanrenwowo 2011-06-07
  • 打赏
  • 举报
回复
楼主是想在id不变的情况下删除id为2,3,5三条记录,然后查询出来
kingtiy 2011-04-22
  • 打赏
  • 举报
回复
SELECT a.* FROM tb a JOIN (
SELECT min(id) id,name1 FROM tb
GROUP BY name1
) b
ON a.id=b.id
ORDER BY a.id
shuai45 2011-04-22
  • 打赏
  • 举报
回复
结果:
id name1 createTime
1 a 2011-04-04 14:50
4 b 2011-04-04 11:12
6 f 2011-04-03
7 g 2011-04-02
8 k 2011-04-01
xiaol028 2011-04-22
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!小技巧
id name1 createTime
1 a 2011-04-04 14:50
4 b 2011-04-04 11:12
6 f 2011-04-03
7 g 2011-04-02
8 k 2011-04-01
name2?
叶子 2011-04-22
  • 打赏
  • 举报
回复

declare @t table (id int,name1 varchar(1),name2 varchar(10),createTime varchar(6))
insert into @t
select 1,'a','2011-04-04','14:50' union all
select 2,'a','2011-04-04','14:52' union all
select 3,'a','2011-04-04','14:20' union all
select 4,'b','2011-04-04','11:12' union all
select 5,'b','2011-04-04','11:11' union all
select 6,'f','2011-04-03',null union all
select 7,'g','2011-04-02',null union all
select 8,'k','2011-04-01',null

select * from @t t where id=
(select min(id) from @t where name2=t.name2 and name1=t.name1)
order by id
/*
id name1 name2 createTime
----------- ----- ---------- ----------
1 a 2011-04-04 14:50
4 b 2011-04-04 11:12
6 f 2011-04-03 NULL
7 g 2011-04-02 NULL
8 k 2011-04-01 NULL
*/
dovei 2011-04-22
  • 打赏
  • 举报
回复
楼主这个问题...有点麻烦
二笔取小的..三笔取中间的.那有四笔呢 取哪个?
mustudent 2011-04-22
  • 打赏
  • 举报
回复

Select * From # s Where Not Exists(Select 1 From # where s.name1=#.name1 and s.id>#.id)
--Exists子查询
--你要是想只取ID最小的记录就用这个,要是取时间就用CreateTime
yzf86211861 2011-04-22
  • 打赏
  • 举报
回复

select id,name,min(convert(datetime,createTime)) from table
group by id,name
order by id, name1, createTime desc
cd731107 2011-04-22
  • 打赏
  • 举报
回复
--sql2000的语法,不知道能不能用
select from tb a where id in (select top 1 id from tb b where a.name1=b.name1 order by b.id)
--小F-- 2011-04-22
  • 打赏
  • 举报
回复
select * from tb t where id=(select min(id) from tb where name1=.name1 and createTime
=t.createTime)
shuai45 2011-04-22
  • 打赏
  • 举报
回复
id name1 name2 createTime
1 a 2011-04-04 14:50
2 a 2011-04-04 14:52
3 a 2011-04-04 14:20
4 b 2011-04-04 11:12
5 b 2011-04-04 11:11
6 f 2011-04-03
7 g 2011-04-02
8 k 2011-04-01



结果:
id name1 createTime
1 a 2011-04-04 14:50
4 b 2011-04-04 11:12
6 f 2011-04-03
7 g 2011-04-02
8 k 2011-04-01
shuai45 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tony312ws 的回复:]
select distinct ......
[/Quote]晕,你压根没看我写的。。。。
tony312ws 2011-04-22
  • 打赏
  • 举报
回复
select distinct ......

34,593

社区成员

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

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