当前位置: 代码迷 >> Sql Server >> 这个select语句怎么查询
  详细解决方案

这个select语句怎么查询

热度:101   发布时间:2016-04-27 20:13:42.0
这个select语句如何查询?
先有一个5个字段的表abc,5个字段分布为:abc01,abc02,abc03,abc04,abc05

其中abc01,abc02,abc03这3个字段为主键,并确定唯一值。

请问如何返回以abc01,abc02分类汇总,并abc03为最小值的字段。

比如
select   abc.*
from   (select   abc01,abc02,min(abc03)   abc03
from   abc
group   by   abc01,abc02)   abd
left   join   abc
on   abd.abc01   =   abc.abc01
and   abd.abc02   =   abc.abc02
and   abd.abc03   =   abc.abc03

这其中用到了子查询,请问有没有一次性查询出来的。

------解决方案--------------------
--是这样么?
select *
from abc t
where exists(select 1 from abc where t.abc01=abc01 and t.abc02=abc02 and t.abc03 <abc03)
------解决方案--------------------
to: leo_lesley(leo) ( ) 信誉:100 2007-07-20 16:14:43 得分: 0
你的是不是错了啊!!
他是求最小的呢?
----select * from abc a where not exists
(select 1 from abc where abc01=a.abc01 and abc02=a.abc02 and abc03 <a.abc03)
---没有测试过
------解决方案--------------------
select *
from [TABLE] a
where NAME=(select top 1 NAME from [TABLE] b where a.ID=b.ID order by b.NAME ASC)
------解决方案--------------------
select *
from [TABLE] a
where exists(select top 1 NAME from [TABLE] b where a.ID=b.ID order by b.NAME ASC)

------解决方案--------------------
欢迎加入SQL群,一起研究探讨,共同进步,32758914 ,32446412,26194949,19814296 。前者满了既可加后者。
  相关解决方案