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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵