进度跟踪表的SQL怎么写

表结构:月份,产品ID,数量,以某一个月的产品数量为基准线,跟踪未来的月份对基准线月份的产品数量的清理情况(每个月都会有新增产品ID 和数量)

假设6月底有100个库存,跟踪未来7-12月的清理进度(清理了多少个)主键是产品ID,例如6月有100个ID,7月还剩90个ID,就说明清理了10个,8月还剩70个ID,就说明了清理了30个,依次类推

FineReport xulei2020 发布于 2023-2-7 16:47 (编辑于 2023-2-8 08:36)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-8-6 21:36

拉链表的详细实现过程(好文点赞收藏!!)_拉链表的实现过程_KG大数据的博客-CSDN博客

你这个拉链表是目前相对较优的办法,这个会记录每一个数据的变化。它能按你设置的主键去记录每一条数据,所有字段的变化!

image.png

最佳回答
1
snrtuemcLv8专家互助
发布于2023-2-7 16:52

这个需要有辅助字段,假设一个日期字段,记录哪天完成的,有日期就是已经完成,没有日期值就是没完成

还能根据日期来判断哪天哪个月完成的,这样就可以根据日期进行你的跟踪了

最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-7 16:50(编辑于 2023-2-8 09:03)

你这个查不了

就以你的例子说明一下:

假设现在已经是8月了只剩70个,你7月的怎么也查不出来了

-------------

我理解 你的清理 是删除 的意思

---------------------

既然你补充了表结构,那再约定一件事:月份的格式为YYYY-MM-DD

SELECT *,SL-NEXT_ FROM (

SELECT *,lead([SL],1,0) over(ORDER BY REPLACE(MONTH_,'-','') ASC) [NEXT_] FROM (

SELECT LEFT(月份,7) [MONTH_],COUNT(DISTINCT(产品ID))  [SL] FROM TABLE WHERE 月份>='' group by LEFT(月份,7)---查出每个月的产品数量

) T1 ---lead() over()将下一个月的产品数量next_

) T2----计算产品数量差

没数据,大概就这样

  • xulei2020 xulei2020(提问者) 6月份100个ID,到了7月份只能关联上90个,那不就说明清理了10个吗
    2023-02-08 08:37 
最佳回答
0
mind_childLv6见习互助
发布于2023-2-7 16:55

建议你把表结构写出来,我们好帮你分析

  • xulei2020 xulei2020(提问者) 表结构:月份,产品ID,数量,以某一个月的产品数量为基准线,跟踪未来的月份对基准线月份的产品数量的清理情况(每个月都会有新增产品ID 和数量) 假设6月底有100个库存,跟踪未来7-12月的清理进度(清理了多少个)主键是产品ID,例如6月有100个ID,7月还剩90个ID,就说明清理了10个,8月还剩70个ID,就说明了清理了30个,依次类推
    2023-02-08 08:37 
  • mind_child mind_child 回复 xulei2020(提问者) 给了个寂寞啊,你为什么不能用excel画一下呀。
    2023-02-08 13:11 
  • 3关注人数
  • 529浏览人数
  • 最后回答于:2023-8-6 21:36
    请选择关闭问题的原因
    确定 取消
    返回顶部