怎样随机取得相同项目名称的数据,条件是只要取得的项目名称数量之和等于某个数(2或者3))
表结构(表名称:item):
项目名称 数量
a 1
a 2
a 3
a 4
a 5
...
说明如下:
我要从表item里面查询出项目名称='a' and sum(数量)=6 的数据
随便几条数据都可以,只要符合上面的条件都行
比如可以查询出的结果为:
前面三条数据(项目名称='a' and sum(数量)=6)
也可以是第一条和最后一条,
也可以是第二条和倒数第二条
用sql语句可以实现吗?
我都整疯了?
--解决办法:
--创建测试环境
declare @t table
(项目名称 varchar(20),数量 int)
insert @t
select 'a',1 union all
select 'a',2 union all
select 'a',3 union all
select 'a',4 union all
select 'a',5
--查询
select * from @t a join @t b
on a.项目名称=b.项目名称 and a.数量<>b.数量
where a.项目名称='a' and a.数量+b.数量=6
--结果
项目名称 数量 项目名称 数量
-------------------- ----------- -------------------- -----------
a 5 a 1
a 4 a 2
a 2 a 4
a 1 a 5
(所影响的行数为 4 行)