求助:sql语句的设计,如下

已知总价和总数量,随机列出一组单个商品信息

数据库设计如下:Goods
编号 名称 数量 单价
id name number price

总数量:number1+number2+number3+...+number(n-1)+number(n)
总价格:(number1* price1)+(number2*price2)+。。。+((number n)* (price n) )

这样的SQL语句该如何写?

图片说明

图片说明

图片说明

图片说明

SELECT a.* FROM goods a,(SELECT id,SUM(number * price) AS totalPrice FROM goods GROUP BY id) b WHERE a.id=b.id AND a.number=2 AND b.totalPrice=305 ORDER BY RAND() LIMIT 1;

select sum(number ) from Goods 总数量
select sum (number *price) from Goods 总价格:

1.生成随机数,拿一个变量来装:
declare @a int

set @a=set select floor(rand() * 10)
2.判断是否有这么多条数据
while @a> select count(*) from 表名
begin

set @a=set select floor(rand() * 10)//如果没到就重新获取随机值
end

3.查询输出
select * from 表名 where id=@a

不是两条语句,是一条 已知总价和总数量,随机列出一组单个商品信息

感觉缺少条件,好像数据题
a+b=s1;
ax+by=s2这样,这个数学题怎么解

1、条件:根据总数和总价求商品名称
2、newid()为随机数,排序后获取Top 值,即可获取到随机数,需要几条就top 多少

 select newid() as a,name from goods group by name having sum(number)=总数 and sum(number*price)=总价 order by a

你这个问法有点不好理解,缺点神马的赶脚?

SELECT a.* FROM goods a,(SELECT id,SUM(number * price) AS totalPrice FROM goods GROUP BY id) b WHERE a.id=b.id AND a.number=商品总数 AND b.totalPrice=商品总价;

我觉的这个需要用算法去解,一条语句肯定不行的