sutongxuevip
YafengLiang
采纳率0%
2017-07-05 07:44

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

10
  • 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;

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

8条回答

  • haozi_e 红橡树 4年前

    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=商品总价;

    点赞 1 评论 复制链接分享
  • u013063196 Sugar_沫沫 4年前

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

    点赞 评论 复制链接分享
  • m0_38041638 大米加小米Q 4年前

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

    点赞 评论 复制链接分享
  • wodewojueding wodewojueding 4年前
    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
    
    点赞 评论 复制链接分享
  • strutce 丵鹰 4年前

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

    点赞 评论 复制链接分享
  • sutongxuevip YafengLiang 4年前

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

    点赞 评论 复制链接分享
  • Unique_TingZi Unique_TingZi 4年前

    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

    点赞 评论 复制链接分享
  • xiaoleizhanghahaha 不 死彡邪神 4年前

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

    点赞 评论 复制链接分享

相关推荐