qq_24623729 2019-10-15 21:36 采纳率: 100%
浏览 363
已采纳

求两句SQL语句,Mysql的,数据表结构颠覆了我的认知。。

我也不知道这几张表谁建的,
俺也不敢说,俺也不敢问,
刚进公司实习,同事安排我写SQL语句,
我十分蛋疼的写到自闭想离开了,
尝试着写了写,求大佬帮忙看一下。。
在我的认知里,
店面类型应该储存在店面表里一个叫 类型ID的字段,
这样类型表可以只有几条分类数据,有几种分类就有几条记录,
可是他竟然把所有店面ID丢到了店面类型表里,
这就代表着,商品表有多少记录,分类表就也有多少记录。。

表大概长这样:
店面表(店面ID,平台ID),
订单表(订单ID,店面ID,成交数量,成交金额),
店面类型表(未知作用的主键ID,类型ID,类型名,店面ID),

然后同事让我写这么一个功能:
给一个平台ID,查询出每种类型的店面都成交了多少钱

拿到需求后,我先做出分析,

先用平台ID,查出这个平台ID对应的所有店面ID,
然后再用店面ID,查询出这个店面的成交金额总和,
然后再去类型表里,按照类型分组,把类型相同的店面的成交金额都加起来得到最终结果。

然后开始写,
select 店面ID,sum(成交金额)
from 订单表 inner join 店面表 on 店面表.店面ID=订单表.店面ID
and 店面表.平台ID=1;

然后分组

select 类型ID,sum(成交金额)
from 订单表 
inner join 店面表 on 店面表.店面ID = 订单表.店面ID
inner join 店面类型表 on 店面类型表.店面ID = 店面表.店面ID
group by 店面类型表.类型ID

最终我提交的就是这句了,请问大佬,对吗?如果不对的话要怎么写?
  • 写回答

2条回答 默认 最新

  • Kevin.Y.K 2019-10-16 09:19
    关注

    没啥问题

    select 类型ID, max(店面类型表.类型名), sum(成交金额)
    from 订单表 
    inner join 店面表 on 店面表.店面ID = 订单表.店面ID
    inner join 店面类型表 on 店面类型表.店面ID = 店面表.店面ID and 店面表.平台ID=1
    group by 店面类型表.类型ID
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试