求一sql语句

atmo 2010-04-05 11:14:48
货名称 批次
A 1
A 2
B 2
B 3
C 1
C 2

查询所有 希望 结果

1、货名称只出现一次 货名称的搜索结果中不能重复
2、批次为所有当前货物最小的批次

意思就是
结果只能出现一个A 但是A有两次批次 ,这时只能把批次较小的显示出来,
结果只能出现一个B 但是B有两次批次 ,这时只能把批次较小的显示出来,
。。。。。
结果应该为

A 1
B 2
C 1
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
atmo 2010-04-05
  • 打赏
  • 举报
回复
结贴 感谢各位
dawugui 2010-04-05
  • 打赏
  • 举报
回复
create table tb(货名称 varchar(10),批次 int)
insert into tb values('A' ,1)
insert into tb values('A' ,2)
insert into tb values('B' ,2)
insert into tb values('B' ,3)
insert into tb values('C' ,1)
insert into tb values('C' ,2)
go

--如果只算货名称,批次这两个字段
select 货名称 , min(批次) 批次 from tb group by 货名称

--如果不止货名称,批次这两个字段
select t.* from tb t where 批次 = (select min(批次) from tb where 货名称 = t.货名称)
select t.* from tb t where not exists (select 1 from tb where 货名称 = t.货名称 and 批次 < t.批次)


drop table tb

/*
货名称 批次
---------- -----------
A 1
B 2
C 1

(所影响的行数为 3 行)
*/
--小F-- 2010-04-05
  • 打赏
  • 举报
回复
select 货名称 , min(批次) 批次 from tb group by 货名称
或者
select * from tb t where 批次=(select min(批次) from tb where 货名称=t.货名称)
htl258_Tony 2010-04-05
  • 打赏
  • 举报
回复
select 货品名称,min(批次) 批次 from tb group by 货品名称
dawugui 2010-04-05
  • 打赏
  • 举报
回复
create table tb(货名称 varchar(10),批次 int)
insert into tb values('A' ,1)
insert into tb values('A' ,2)
insert into tb values('B' ,2)
insert into tb values('B' ,3)
insert into tb values('C' ,1)
insert into tb values('C' ,2)
go

select 货名称 , min(批次) 批次 from tb group by 货名称

drop table tb

/*
货名称 批次
---------- -----------
A 1
B 2
C 1

(所影响的行数为 3 行)
*/
dawugui 2010-04-05
  • 打赏
  • 举报
回复
select 货名称 , min(批次) 批次 from tb group by 货名称

34,576

社区成员

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

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