atangge_Yeer
atangge_Yeer
2017-04-13 09:38
采纳率: 33.3%
浏览 734

求大神解答关于sqlserver的问题!! 新手发出求救信号!

现有3张表,1、订单表 2、订单子表 3、商品表
图片说明
图片说明
图片说明
订单子表的订单编号关联订单表的订单编号,商品表的编号关联订单子表的商品编号,下单时间只有订单表才有
需要根据订单表查询一段时间段内的总订单数和每个商品的订单数
(如2016/04/15-2016/05/15)这段时间内每天的总订单数和每个商品的订单数
大概就是下面的效果
图片说明
这样的效果 sqlserver的sql的select语句能写出来嘛?能的话求大神教教我!!!新手表示困惑了很久!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • JustWantToFly
    JustWantToFly 2017-04-15 04:46
    已采纳
     select 下单时间,订单总量,
    (case 品名 when '肉包' else 0 end) as 肉包,
    (case 品名 when '菜猪油包' else 0 end) as 菜猪油包,
    (case 品名 when '白馒头' else 0 end) as 白馒头,
    (case 品名 when '红豆沙包' else 0 end) as 红豆沙包,
    (
      select t4.下单时间,t3.品名,count(t3.品名) as 订单总量 from
      (
              select * from 商品表 t1
              left join 订单子表 t2 ON t1.编号=t2.商品编号
      ) t3
      left join 订单表 t4 on t4.订单编号=t3.订单编号
      group by t4.下单时间,t3.品名
      order by t4.下单时间
    )
    

    你可以参考参考,看看能不能实现

    点赞 评论
  • atangge_Yeer
    atangge_Yeer 2017-04-13 09:43

    一段时间内的每天的总订单数和每个商品的订单数,大神们在哪儿,快来带带我 !!

    点赞 评论
  • Mr_ZhangXiaoCao
    Mr_ZhangXiaoCao 2017-04-13 12:28

    在MySQL数据库中十分简单就可以运行,具体可以看我博客里面有大概讲解,拿走不谢。

    点赞 评论
  • qq503758762
    点点滴滴的淡淡的 2017-04-14 01:41

    select 开始时间,count(1) 总数量 from 订单表 a,订单子表 b,商品表 c where a.订单编号=b.订单编号 and b.商品编号=c.商品编号 and a.下单时间 between 开始时间 and 结束时间
    union all
    select 开始时间,count(1) 总数量 from 订单表 a,订单子表 b,商品表 c where a.订单编号=b.订单编号 and b.商品编号=c.商品编号 and a.下单时间 between 开始时间 and 结束时间
    and b.商品=‘包子’
    union all
    ......................................

    点赞 评论
  • qq503758762
    点点滴滴的淡淡的 2017-04-14 01:43

    不知道sqlserver里面有没有“列转行”,你搜索一下百度吧

    点赞 评论

相关推荐