「已注销」 2022-02-08 12:13 采纳率: 85.7%
浏览 69
已结题

关于数据库的五个问题

某超市的商品管理系统,有以下三张表,请根据要求作答。

img

(说明:商品表(csb_sp)是拉链表,以起始日期(qsrq)、结束日期(jsrq)按日期区间记录销售单价的变化。)

1、查询2021年初以来,所有商品的销售单价变化情况,展示信息:商品名称、商品类型、商品单位、起始日期、结束日期、商品单价。
2、查询2021年初以来所有商品的入库情况,展示信息:商品名称、商品类型、入库总量、入库次数、购入支出总金额。并按入库总量降序排列。

3、查询2021年3月份商品交易情况,展示信息:商品名称、商品类型、交易总量、交易总金额。按交易金额降序排列。

4、查询一季度现金支付交易量和非现金支付交易情况,展示信息:月份、现金付款次数、非现金付款次数、现金付款交易金额占比。按月份升序排列。

5、查询年初以来日均销售量达到100或者日均销售额达到3000元的商品,展示信息:商品名称、商品类型、日均销售数量、日均销售额。

  • 写回答

2条回答 默认 最新

  • IT阿沈 2022-02-08 14:38
    关注

    这些问题应该涉及的都是比较基础的sql知识,不必想的太复杂。

    具体的代码:

    -- 问题1
    select spmc,splx,spdw,qsrq,jsrq,xsdj from csb_sp where qsrq >= '2021-01-1' ;
    -- 问题2
    select b.spmc,b.splx,sum(a.rksl) as  rkzl,count(a.spbh) as rkcs,sum(a.grdj) as zczje  from sp_rkjl a
    left join csb_sp b on a.spbh = b.spbh
     where rkrq >= '2021-01-1' 
    group by b.spmc,b.splx order by sum(a.rksl) desc ;
    -- 问题3 这个需要考虑单价变动的情况
    select b.spmc,b.splx,sum(jysl) as jyzl,sum(a.jysl*b.xsdj) as jyzje from sp_jyjl a 
    left join csb_sp b on a.spbh = b.spbh and a.jyrq between b.qsrq and b.jsrq
    where a.jyrq between '2021-03-01' and '2021-03-31'
    group by b.spmc,b.splx order by sum(a.jysl*b.xsdj) desc
    -- 问题4
    select right(date_format(jyrq, '%Y%m'),2),sum(case when fkfs = 0 then 1 else 0 end ) xjcs
    ,sum(fkfs)  as fxjfkcs  --基于fkfs这个字段是int类型的写法
    ,sum(case when fkfs = 0 then a.jysl*b.xsdj else 0 end )/sum(a.jysl*b.xsdj) xjfrjyjezb 
    from sp_jyjl a 
    left join csb_sp b on a.spbh = b.spbh and a.jyrq between b.qsrq and b.jsrq
    where  right(date_format(jyrq, '%Y%m'),2) between '01' and '03'
    group by right(date_format(jyrq, '%Y%m'),2) order by right(date_format(jyrq, '%Y%m'),2) 
    -- 问题5
    select t1.spmc,t1.splx,avg(jyzl) ,avg(jyzje ) from (
    select a.jyrq,b.spmc,b.splx,sum(jysl) as jyzl,sum(a.jysl*b.xsdj) as jyzje from sp_jyjl a 
    left join csb_sp b on a.spbh = b.spbh and a.jyrq between b.qsrq and b.jsrq
    where a.jyrq >= '2021-01-01' 
    group by b.spmc,b.splx  ,a.jyrq ) t1 
    group by t1.spmc,t1.splx having  avg(jyzl) >=100 or avg(jyzje )>=3000
    

    由于没有数据内容和表结构可以参考,所写内容均需后续验证,如有问题,请直接联系。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 2月8日

悬赏问题

  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测