当前位置: 首页 > news >正文

SQL每日一题-0823(难度提升题)

今日SQL题:库存调拨优化

难度系数:🌟🌟☆☆☆☆☆☆☆☆

1、题目要求    
  • 分析每个产品在不同仓库的库存差异,并找出从哪个仓库调拨以满足需求。
  • 查询结果显示:库存充足的源仓库名称、库存不足的目标仓库名称、需要调拨的产品名称、源仓库与目标仓库之间的库存差异数、调拨的总成本(根据调拨的差异数和产品单价计算)
2、表和虚拟数据
--仓库信息表
CREATE TABLE IM_Warehouses (WarehouseID INT PRIMARY KEY, -- 仓库IDWarehouseName NVARCHAR(100), -- 仓库名称Location NVARCHAR(100) -- 仓库位置
);--产品表
CREATE TABLE IM_Products (ProductID INT PRIMARY KEY, -- 产品IDProductName NVARCHAR(100), -- 产品名称Category NVARCHAR(50), -- 产品类别UnitCost DECIMAL(10, 2), -- 产品单价ReorderLevel INT -- 再订货水平
);--产品库存表
CREATE TABLE IM_Inventory (InventoryID INT PRIMARY KEY, -- 库存IDWarehouseID INT, -- 仓库IDProductID INT, -- 产品IDQuantity INT, -- 库存数量LastUpdated DATETIME, -- 最后更新时间FOREIGN KEY (WarehouseID) REFERENCES IM_Warehouses(WarehouseID),FOREIGN KEY (ProductID) REFERENCES IM_Products(ProductID)
);--订单表
CREATE TABLE IM_Orders (OrderID INT PRIMARY KEY, -- 订单IDOrderDate DATETIME, -- 订单日期CustomerID INT, -- 客户ID,引用IM_Customers表WarehouseID INT, -- 仓库ID,引用IM_Warehouses表FOREIGN KEY (WarehouseID) REFERENCES IM_Warehouses(WarehouseID)
);--订单明细表
CREATE TABLE IM_OrderDetails (OrderDetailID INT PRIMARY KEY, -- 订单详情IDOrderID INT, -- 订单ID,引用IM_Orders表ProductID INT, -- 产品ID,引用IM_Products表Quantity INT, -- 订单数量UnitPrice DECIMAL(10, 2), -- 产品单价FOREIGN KEY (OrderID) REFERENCES IM_Orders(OrderID),FOREIGN KEY (ProductID) REFERENCES IM_Products(ProductID)
);--客户表
CREATE TABLE IM_Customers (CustomerID INT PRIMARY KEY, -- 客户IDCustomerName NVARCHAR(100), -- 客户名称CustomerEmail NVARCHAR(100) -- 客户邮箱
);--模拟数据
INSERT INTO IM_Warehouses (WarehouseID, WarehouseName, Location) VALUES
(1, '京东智能仓储-北京库', '北京'),
(2, '阿里智能仓储-杭州库', '杭州'),
(3, '华为智能仓储-深圳库', '深圳'),
(4, '中兴智能仓储-成都库', '成都'),
(5, '顺丰智能仓储-广州库', '广州');INSERT INTO IM_Products (ProductID, ProductName, Category, UnitCost, ReorderLevel) VALUES
(1, '笔记本电脑', '电子产品', 1200.00, 50),
(2, '智能手机', '电子产品', 800.00, 100),
(3, '办公椅', '家具', 250.00, 30),
(4, '耳机', '配件', 150.00, 70),
(5, '显示器', '电子产品', 300.00, 20),
(6, '键盘', '配件', 80.00, 40),
(7, '鼠标', '配件', 40.00, 50),
(8, '打印机', '电子产品', 150.00, 10),
(9, '台灯', '家具', 90.00, 25),
(10, 'USB闪存', '配件', 20.00, 150);INSERT INTO IM_Customers (CustomerID, CustomerName, CustomerEmail) VALUES
(1, '客户A', 'customerA@example.com'),
(2, '客户B', 'customerB@example.com'),
(3, '客户C', 'customerC@example.com'),
(4, '客户D', 'customerD@example.com'),
(5, '客户E', 'customerE@example.com'),
(6, '客户F', 'customerF@example.com'),
(7, '客户G', 'customerG@example.com'),
(8, '客户H', 'customerH@example.com'),
(9, '客户I', 'customerI@example.com'),
(10, '客户J', 'customerJ@example.com');INSERT INTO IM_Inventory (InventoryID, WarehouseID, ProductID, Quantity, LastUpdated) VALUES
(1, 1, 1, 60, '2024-08-01'),
(2, 1, 2, 120, '2024-08-01'),
(3, 1, 6, 200, '2024-08-01'),
(4, 1, 9, 30, '2024-08-01'),
(5, 2, 1, 80, '2024-08-01'),
(6, 2, 3, 20, '2024-08-01'),
(7, 2, 7, 90, '2024-08-01'),
(8, 2, 10, 150, '2024-08-01'),
(9, 3, 4, 50, '2024-08-01'),
(10, 3, 5, 10, '2024-08-01'),
(11, 3, 8, 5, '2024-08-01'),
(12, 4, 2, 60, '2024-08-01'),
(13, 4, 5, 40, '2024-08-01'),
(14, 4, 6, 120, '2024-08-01'),
(15, 5, 3, 80, '2024-08-01'),
(16, 5, 7, 30, '2024-08-01'),
(17, 5, 8, 20, '2024-08-01');INSERT INTO IM_Orders (OrderID, OrderDate, CustomerID, WarehouseID) VALUES
(1, '2024-08-02', 1, 1),
(2, '2024-08-05', 2, 2),
(3, '2024-08-07', 3, 3),
(4, '2024-08-10', 4, 1),
(5, '2024-08-12', 5, 2),
(6, '2024-08-14', 6, 3),
(7, '2024-08-16', 7, 4),
(8, '2024-08-18', 8, 5),
(9, '2024-08-20', 9, 1),
(10, '2024-08-22', 10, 2);INSERT INTO IM_OrderDetails (OrderDetailID, OrderID, ProductID, Quantity, UnitPrice) VALUES
(1, 1, 1, 10, 1200.00),
(2, 1, 2, 20, 800.00),
(3, 2, 3, 15, 250.00),
(4, 2, 4, 5, 150.00),
(5, 3, 5, 2, 300.00),
(6, 3, 6, 8, 80.00),
(7, 4, 7, 5, 40.00),
(8, 4, 8, 1, 150.00),
(9, 5, 9, 3, 90.00),
(10, 5, 10, 10, 20.00),
(11, 6, 1, 2, 1200.00),
(12, 6, 3, 5, 250.00),
(13, 7, 4, 10, 150.00),
(14, 7, 6, 3, 80.00),
(15, 8, 5, 7, 300.00),
(16, 8, 9, 4, 90.00),
(17, 9, 2, 6, 800.00),
(18, 9, 10, 8, 20.00),
(19, 10, 7, 5, 40.00),
(20, 10, 8, 2, 150.00);
3、预期查询结果

   4、解题思路

        1)、查找仓库库存差异:比较每个产品在不同仓库的库存差异,选择库存充足的仓库

               (源仓库)和库存不足的仓库(目标仓库)

        2)、计算库存差异:比较每种产品在不同仓库之间的库存差异

        3)、计算总数量差异和总成本:根据计算出的库存差异,统计每种产品的总数量差异、计算

               调拨所需总成本

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringCloud Gateway及 Springboot 服务 跨域配置
  • gcc: leaf function/non-leaf function;末节函数,叶子函数
  • conda虚拟环境中安装cuda和cudnn
  • Milvus向量数据库-磁盘索引简介
  • HTTP 414错误问题
  • 第三课《排序》
  • 【html+css 绚丽Loading】 10个Loading合集(1)
  • 如何利用命令模式实现一个手游后端架构
  • 通过主成分分析实现检测金融中的异常交易模式
  • 学习node.js 十 redis的基本语法
  • Dashboard Interface 应用
  • LeetCode 3146.两个字符串的排列差:小数据,我选择暴力模拟
  • 02- javascript 高阶-构造函数(知识点)呀
  • PagosController : ControllerBase
  • Oracle(84)什么是SQL调优顾问(SQL Tuning Advisor)?
  • [PHP内核探索]PHP中的哈希表
  • .pyc 想到的一些问题
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • angular2开源库收集
  • Flex布局到底解决了什么问题
  • flutter的key在widget list的作用以及必要性
  • Java 多线程编程之:notify 和 wait 用法
  • Javascript弹出层-初探
  • Mysql5.6主从复制
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • tensorflow学习笔记3——MNIST应用篇
  • Vue 重置组件到初始状态
  • vue学习系列(二)vue-cli
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 跳前端坑前,先看看这个!!
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 我看到的前端
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • # Maven错误Error executing Maven
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #每日一题合集#牛客JZ23-JZ33
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • .gitignore文件---让git自动忽略指定文件
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .net下简单快捷的数值高低位切换
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • [20150629]简单的加密连接.txt
  • [C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像
  • [C][栈帧]详细讲解
  • [CF482B]Interesting Array
  • [Docker]十.Docker Swarm讲解
  • [FT]chatglm2微调