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

有空间与域名后怎么做网站浙江建设工程信息网站

有空间与域名后怎么做网站,浙江建设工程信息网站,建设部监理资质申报网站,西安到北京飞机几个小时mysql如何不使用窗口函数,去统计出入库情况 你把这个表看做 进出库表,每个物料把时间正序后 依次累加数量 ,看这个物料的时间线上 是否会出现负数,1号进货5个 2号出库3个 3号你不能出库3个 最多俩个 不然就是负库存,…

mysql如何不使用窗口函数,去统计出入库情况

你把这个表看做 进出库表,每个物料把时间正序后 依次累加数量 ,看这个物料的时间线上 是否会出现负数,1号进货5个 2号出库3个  3号你不能出库3个 最多俩个 不然就是负库存,说白 就是按时间线累加每天的数据 每个时间线不能出现 负数。需要用mysql 写出来   aa date num A 2024-01-03   2 B 2024-01-05   -2  。要求不能使用窗口函数。    CREATE TABLE your_table (material_code VARCHAR(10),invoice_date DATE,quantity INT
);INSERT INTO your_table (material_code, invoice_date, quantity)
VALUES('A', '2024-01-03', 2),('A', '2024-01-04', 4),('A', '2024-01-05', -2),('A', '2024-01-05', -5),('A', '2024-01-05', 5),('A', '2024-01-06', -9),('A', '2024-01-07', 5),('B', '2024-01-03', 2),('B', '2024-01-04', 4),('B', '2024-01-05', -2),('B', '2024-01-05', -5),('B', '2024-01-05', 5),('B', '2024-01-06', -9),('B', '2024-01-07', 5);

你要通过 MySQL 查询每个物料的库存变化,并检查在时间线上的库存是否会出现负数。在这个场景下,我们需要按照 invoice_date 进行累加库存,累加时一旦发现某一天的库存变为负数,就可以将其标记为库存不足。

这个查询需要以下步骤:

  1. 按照 material_codeinvoice_date 将数据按时间升序排列。
  2. 对于每个物料,逐步累加 quantity,同时判断是否有任何时间点的库存是负数。
  3. 使用 变量 来累加数量并检查是否为负数,而不使用窗口函数。

MySQL 查询:

-- 定义变量
SET @current_stock = 0;
SET @prev_material = '';-- 查询每个物料的时间线库存变化,查看是否出现负数
SELECT material_code, invoice_date, quantity, @current_stock := CASE WHEN @prev_material = material_code THEN @current_stock + quantityELSE quantityEND AS stock_after_transaction,@prev_material := material_code AS material_code_check,CASE WHEN @current_stock < 0 THEN '库存不足'ELSE '库存充足'END AS stock_status
FROM your_table
ORDER BY material_code, invoice_date;

解释:

  1. @current_stock:一个变量,记录每个物料的当前累积库存。
  2. @prev_material:记录前一个物料的 material_code,以确保如果物料切换,库存会重新计算。
  3. 累加逻辑:如果当前物料与上一个相同,累加库存。如果物料变了,重置库存累加。
  4. 库存检查:如果某个时间点的库存小于 0,会标记为 库存不足

执行结果示例:

material_codeinvoice_datequantitystock_after_transactionstock_status
A2024-01-0322库存充足
A2024-01-0446库存充足
A2024-01-05-24库存充足
A2024-01-05-5-1库存不足
A2024-01-0554库存充足
A2024-01-06-9-5库存不足
A2024-01-0750库存充足
B2024-01-0322库存充足
B2024-01-0446库存充足
B2024-01-05-24库存充足
B2024-01-05-5-1库存不足
B2024-01-0554库存充足
B2024-01-06-9-5库存不足
B2024-01-0750库存充足

说明:

  • stock_after_transaction 是每个时间点的库存。
  • stock_status 表明库存是否充足,当库存低于 0 时显示 “库存不足”。

通过这个查询,你可以监控物料的库存变化,并及时发现负库存的情况。

============================================

=============================================================

【第二版:日期聚合】

好的,理解你的意思了。你希望在相同日期的 quantity 先进行聚合,然后再按日期累加库存变化。

我们可以在查询中加入一个聚合步骤,先对相同 material_codeinvoice_datequantity 进行汇总,之后再按照时间顺序进行库存的累加和检查。

更新的 MySQL 查询:

-- 定义变量
SET @current_stock = 0;
SET @prev_material = '';-- 先对相同日期的数量进行聚合,再按日期累加库存并检查是否为负
SELECT material_code, invoice_date, total_quantity, @current_stock := CASE WHEN @prev_material = material_code THEN @current_stock + total_quantityELSE total_quantityEND AS stock_after_transaction,@prev_material := material_code AS material_code_check,CASE WHEN @current_stock < 0 THEN '库存不足'ELSE '库存充足'END AS stock_status
FROM (-- 聚合相同日期的数量SELECT material_code, invoice_date, SUM(quantity) AS total_quantityFROM your_tableGROUP BY material_code, invoice_date
) AS aggregated_table
ORDER BY material_code, invoice_date;

解释:

  1. 内部子查询 aggregated_table

    • 通过 GROUP BY material_code, invoice_date 对相同物料、相同日期的数据进行聚合,使用 SUM(quantity) 来计算每天的总数量。
  2. 外部查询

    • 使用变量 @current_stock 来进行库存累加,逻辑与之前相同。如果物料切换,库存重新计算。
    • 继续检查库存是否为负数,并根据结果显示 “库存不足” 或 “库存充足”。

执行结果示例:

material_codeinvoice_datetotal_quantitystock_after_transactionstock_status
A2024-01-0322库存充足
A2024-01-0446库存充足
A2024-01-05-24库存充足
A2024-01-06-9-5库存不足
A2024-01-0750库存充足
B2024-01-0322库存充足
B2024-01-0446库存充足
B2024-01-05-24库存充足
B2024-01-06-9-5库存不足
B2024-01-0750库存充足

说明:

  • total_quantity 是经过日期聚合后的数量。
  • 之后的逻辑和之前一样,累加库存并检查是否为负。

这样,查询会先对同一天的数量进行汇总,然后再按照日期累加库存,确保你可以监控到任何可能出现负库存的情况。

http://www.yayakq.cn/news/569160/

相关文章:

  • 东莞网站建设分享seo网站建设创始人
  • 山东网站优化公司网站开发计划书网站技术解决方案
  • 外贸网站建设合同logo设计软件app
  • 常见的网站开发语言网站建设注意事情
  • 域名注册查询网站在中国备案的网站服务器
  • 大连网站设计开发深圳建筑人才网招聘信息
  • 民宿网站开发dfd图雅安移动网站建设
  • ps做网站动图天空网站开发者
  • 网站的所有权汕头品牌设计公司
  • 新竹自助网站成都淮洲新城建设投资有限公司网站
  • 用花生壳做网站速度可以吗学些网站制作
  • 做网站优化步骤分类列表页wordpress
  • 网站开发都用什么做音乐 交流网站
  • 四川省查询建设人员注册证书网站人事外包
  • 企业建站一条龙用爬虫做网站
  • 开源网站有哪些杭州网站建设
  • 广东网站建设教程深圳互联网科技有限公司
  • 科技设计网站有哪些内容当下最热的网页制作工具
  • 建大型网站要多少钱杭州网站建设蒙特
  • 百度网站排名怎么提高wordpress 小米主题
  • 简述网站建设方法一建建设网站首页
  • 电子商务战略选择 网站建设建议贵州网络推广介绍
  • 网站制作公司属于广告发布者吗模仿建设网站是侵权吗
  • 网站建设 php jsp .net中国建设银行企业
  • 全球云邮登陆网站护肤网站模版
  • 如何进行电子商务网站推广?让家里的电脑做网站服务器
  • 移动网站建设是什么意思网站建设中遇到的问题
  • 网站制作与网站建设实际报告洛阳设计网站公司
  • wordpress mv网站模板网站开发外包计入什么科目
  • 汕头网站建设推广中国建设人才服务信息网证书查询