日期:2014-05-18  浏览次数:20412 次

我想查询出相同的cuno列对应的cadt列中其最小的值,

我想查询出相同的cuno列对应的cadt列中其最小的值,
需求说明:账号表中有客户,账号和账号创建日期三个字段;其中一个客户下有许多账号,现在想查询出所有客户的创建日期;即它所属的账号的创建日期中最先的一个即为客户创建日期。

查询语句
客户 账号 账号创建日期
cuno cano cadt
001 afasdfasdf 20110101
001 dfdsddfifp 20120201
002 sergsfdsfs 20100101
002 wqdfsdfdf 20110101
003 ueoeijfadf 20100101
003 fyadssvvdf 20110101
003 fiadafasdf 20120201

得到的结果应该是:
001 afasdfasdf 20110101
002 sergsfdsfs 20100101
003 ueoeijfadf 20100101




------解决方案--------------------
select * from tb as t
where not exists(select 1 from tb where 客户=t.客户 and 创建日期<t.创建日期)
------解决方案--------------------
SQL code
select  *  from  T a where exists (select cuno ,min(cadt)
  from T  group by cuno where a.cuno =cuno)

------解决方案--------------------
SQL code
--0r
select * from tb as t
where 创建日期=(select min(创建日期) from tb where 客户=t.客户 )

------解决方案--------------------
SQL code

select cuno,cano,cadt from tb t
where cadt=(select min(cadt) from tb where cuno=t.cuno )
--or

select * from tb  t
where not exists(select 1 from tb where cuno=t.cuno  and cadt<t.cadt )