gpt4 book ai didi

sql - 使用 Microsoft SQL Server 仅使用百分比计算运行日期

转载 作者:行者123 更新时间:2023-12-04 05:38:16 25 4
gpt4 key购买 nike

我有一张包含资源信息的表格,基本信息是:

ID    Total    Start        End          Used
----------------------------------------------
1 350 01-01-2012 31-12-2012 80.6%
2 250 01-01-2012 31-12-2012 51.5%
3 3500 01-01-2012 31-07-2013 12.5%
4 350 01-01-2012 31-10-2012 91.0%

列是:
  • Total -- 资源的总数(如货币、时间、纸张等)。
  • Start -- 资源开始日期
  • End -- 资源结束日期
  • Used -- 迄今为止使用的资源百分比

  • 我必须尝试计算(或估计)资源何时会以目前使用的速率耗尽。

    我已经尝试了几种不同的使用百分比和百分比的方法,但没有任何意义,我很确定有一种简单的方法可以做到这一点,但我无法找到它。

    我理想的输出将在下面的文本中,但我可能会在应用程序中格式化:
    You have used X% of your [resource name] in Y% of the time allotted, 
    at this rate the resource will run down around [Run Down Date].

    谁能弄清楚如何计算?

    SQL Fiddle to play with

    编辑:

    为了尝试使问题更清楚,我将解释如何计算单个日期:

    对于第一行(ID = 1)。
    Average % per day = Percentage (80.6) / Days between Start and Today (205)
    Average % per day = 0.003931707%

    % remaining = Percentage (80.6%)
    % remaining = 19.4%

    Days remaining = Average % per day (0.003931707%) / % remaining (19.4%)
    Days remaining = 49.34243176

    Project Run Down = Today + Days Remaining (49.34243176)
    Project Run Down = 11/09/2012 (11th Sep)

    我曾尝试将此过程转换为 SQL,但无法使其正常工作。

    最佳答案

    你可以试试这样的

    declare @res table(
    id int identity(1,1)
    ,total int
    ,start date
    ,[end] date
    ,used float )


    insert into @res(total, start , [end], used)
    values
    (350, '20120101', '20121231', 0.806)
    ,(250, '20120101', '20121231', 0.515)


    select
    *
    ,used/DATEDIFF(DAY,start,GETDATE()) as avUsePerDay
    ,1/(used/DATEDIFF(DAY,start,GETDATE())) as expectedDaysTotal
    ,DATEADD(day,1/(used/DATEDIFF(DAY,start,GETDATE())),start) as expectedToDie
    from @res

    关于sql - 使用 Microsoft SQL Server 仅使用百分比计算运行日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11631944/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com