给定一个值,求组合该值的组合集合

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

怎样随机取得相同项目名称的数据,条件是只要取得的项目名称数量之和等于某个数(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 行)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航