不会手写冒泡 2022-12-14 15:45 采纳率: 40%
浏览 68
已结题

sql: 有以下三张表: 客户基本信息表

sql题目:
有以下三张表:
客户基本信息表:
CUSTOMER_INFO
(
CUSTOMER_ID INTEGER 客户ID,
CUSTOMER_CODE VARCHAR(255) 客户编码 ,
CUSTOMER_NAME VARCHAR(255) 客户名称 ,
FCOMORGID INTEGER 库存组织ID ,
FCOMORGNAME VARCHAR(255) 库存组织 ,
OFFICE_code VARCHAR(255) 办事处编码 ,
OFFICE_NAME VARCHAR(255) 办事处 ,
REGION_CODE VARCHAR(255) 大区编码 ,
REGION_NAME VARCHAR(255) 大区 ,
CENTRAL_CODE VARCHAR(255) 管理中心编码 ,
CENTRAL_NAME VARCHAR(255) 管理中心
)

客户组明细表:
CUSTOMER_GROUP
(CUSTOMER_ID INTEGER 客户ID,
CUSTOMER_NAME VARCHAR(255) 客户名称,
CUSTOMER_CODE VARCHAR(255) 客户编码,
CUSTOMER_GROUP_ID INTEGER 客户组ID,
CUSTOMER_GROUP_NAME VARCHAR(255) 客户组名称
)

客户销售订单明细表:
CUSTOMER_SALEISSUEBILL
(
FID INTEGER 销售出库单ID,
FSTORAGEORGUNITID INTEGER 库存组织ID,
FCREATETIME DATETIME 单据创建日期,
FCUSTOMERID INTEGER 客户ID,
FAMOUNT DECIMAL(12,2) 销售金额,
FDISCOUNTAMOUNT DECIMAL(12,2) 折扣额,
FQTY INTEGER 数量,
FMATERIAL_ID INTEGER 品项ID,
FMATERIAL_NAME VARCHAR(255) 品项名称,
FMATERIAL_CODE VARCHAR(255) 品项编码,
FMODEL VARCHAR(255) 规格型号,
FASSISTPROPERTYID INTEGER 辅助属性ID,
FASSISTPROPERTY_NAME VARCHAR(255) 辅助属性,
FBASEUNIT INTEGER 计量单位ID,
FBASEUNIT_NAME VARCHAR(255) 计量单位
)

要求通过一段SQL语句: 计算出当月数量,当月实际销售额,当月同期数量,当月同期实际销售额 (其中:实际销售额=销售金额-折扣额)
最终得出结果包含以下字段:年月格式例如:'202201'
年月,
库存组织,
管理中心,
大区,
办事处,
客户ID,
客户名称,
客户编码,
客户组ID,
客户组名称,
品项ID,
品项名称,
品项编码,
规格型号,
计量单位,
当月数量,
当月实际销售额,
当月同期数量,
当月同期实际销售额

  • 写回答

2条回答 默认 最新

  • AllenGd 大数据领域优质创作者 2022-12-14 20:24
    关注
    SELECT
    concat(substr(STR_TO_DATE(FCREATETIME,'%Y-%m-%d'),1,4),substr(STR_TO_DATE(FCREATETIME,'%Y-%m-%d'),6,2)) as 年月,
    FCOMORGNAME as 库存组织,
    CENTRAL_NAME as 管理中心,
    REGION_NAME as 大区,
    OFFICE_NAME as 办事处,
    CI.CUSTOMER_ID AS 客户ID,
    CI.CUSTOMER_NAME AS 客户名称,
    CI.CUSTOMER_CODE 客户编码,
    CUSTOMER_GROUP_ID AS 客户组ID,
    CUSTOMER_GROUP_NAME AS 客户组名称,
    FMATERIAL_ID AS 品项ID,
    FMATERIAL_NAME AS 品项名称,
    FMATERIAL_CODE AS 品项编码,
    FMODEL AS 规格型号,
    FBASEUNIT_NAME AS 计量单位,
    SUM(FQTY) AS 当月数量,
    SUM(FAMOUNT) AS 当月实际销售额,
    SUM(CASE WHEN STR_TO_DATE(FCREATETIME,'%Y-%m') = STR_TO_DATE(DATE_SUB(curdate(), INTERVAL 1 YEAR),'%Y-%m') THEN FQTY ELSE 0 END) AS 当月同期数量,
    SUM(FAMOUNT - FDISCOUNTAMOUNT) AS 当月同期实际销售额
    FROM CUSTOMER_INFO CI 
    LEFT JOIN CUSTOMER_GROUP CG
    ON CI.CUSTOMER_ID = CG.CUSTOMER_ID
    LEFT JOIN CUSTOMER_SALEISSUEBILL CS 
    ON CI.CUSTOMER_ID = CS.CUSTOMER_ID
    GROUP BY 
    年月,
    库存组织,
    管理中心,
    大区,
    办事处,
    客户ID,
    客户名称,
    客户编码,
    客户组ID,
    客户组名称,
    品项ID,
    品项名称,
    品项编码,
    规格型号,
    计量单位;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月25日
  • 已采纳回答 12月17日
  • 创建了问题 12月14日

悬赏问题

  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元