【发布时间】:2012-07-24 13:29:48
【问题描述】:
我有一张关于资源信息的表格,基本内容是:
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].
谁能算出这个是怎么计算的?
编辑:
为了使问题更清楚,我将解释如何计算单个日期:
对于第一行 (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,但无法正常工作。
【问题讨论】:
-
当更容易收集数据并在客户端执行计算时,为什么还要在 DB 中计算?
-
abatishchev - 仅仅因为它更容易并不能使它正确。
-
我将使用调度包发送绑定到视图/sp 的电子邮件提醒,因此这需要在数据库端完成,调度包只有非常简单的工具。
-
标题最初包含“MS-SQL”,因为许多人没有将标签“sql-server”与 MS 产品相关联。然后 marc_s 将其更改为不太有用。
标签: sql sql-server sql-server-2008 tsql datetime