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

商品超市系统的数据库操作的五个问题

商品管理系统,三张表,

img

(说明:商品表(csb_sp)是拉链表,以起始日期(qsrq)、结束日期(jsrq)按日期区间记录销售单价的变化。)
1、查询2021年初以来,所有商品的销售单价变化情况,展示信息:商品名称、商品类型、商品单位、起始日期、结束日期、商品单价。

2、查询2021年初以来所有商品的入库情况,展示信息:商品名称、商品类型、入库总量、入库次数、购入支出总金额。并按入库总量降序排列。

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

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

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

  • 写回答

1条回答 默认 最新

  • 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
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢