-3

我需要帮助才能在 sql 2005 中创建查询。

我有 4 个日期:1 个标准开始日期和 3 个要比较的日期。我需要以 10 天为单位计算日期差异。

datediff(天,开始日期,结束日期 1)

从 1 到 10、从 11 到 20 和从 21 到 30 的范围会出现多少次。

这是每 3 个结束日期!

然后是所有(3 个结束日期)1 到 10 aso 的总和(510 次 < 11、275 次 > 10 和 < 21)

在此之后计算所有结束日期的范围百分比。

比如 510/785 = XX.XX% 和 275/785 = XX.XX%

我说清楚了吗?

在此先感谢 1SeoAdvies

@mitch-wheat,这不是一个糟糕的问题,而是一个难以解释的问题!没有表格可以解释这一点。几乎每个表都有一个数据时间字段!

我将再次尝试用非常简单的英语解释这一点。我有一个带有日期时间字段的表。在 excelsheet 中,我有另一个日期时间。两者都有相同的密钥。我知道如何以天为单位计算 datediff。我想知道 1 到 10 之间的 datediff 会出现多少次。

例子:

datediff(天,DateTime1,DateTime2)= 2

datediff(天,DateTime1,DateTime2)= 3

datediff(天,DateTime1,DateTime2)= 11

datediff(天,DateTime1,DateTime2)= 2

datediff(天,DateTime1,DateTime2)= 3

datediff(天,DateTime1,DateTime2)= 11

datediff(天,DateTime1,DateTime2)= 7

datediff(天,DateTime1,DateTime2)= 6

结果是

    < 11  = ***6*** (smaller then 11)

10 和 <21 = 2(在 10 和 21 之间)

将结果相加 6 + 2 = 8

计算百分比:

小于 11 = 6\8 = 75%

大于 11 + <21 = 2\8 = 25%

粗体 /invers 项目是我需要的值!

我现在说清楚了吗??????

提前致谢

4

1 回答 1

1

SQL小提琴

MS SQL Server 2008 架构设置

create table YourTable
(
  dt1 datetime,
  dt2 datetime
)

insert into YourTable values(getdate(), dateadd(day, 2, getdate()))
insert into YourTable values(getdate(), dateadd(day, 3, getdate()))
insert into YourTable values(getdate(), dateadd(day, 11, getdate()))
insert into YourTable values(getdate(), dateadd(day, 2, getdate()))
insert into YourTable values(getdate(), dateadd(day, 3, getdate()))
insert into YourTable values(getdate(), dateadd(day, 11, getdate()))
insert into YourTable values(getdate(), dateadd(day, 7, getdate()))
insert into YourTable values(getdate(), dateadd(day, 6, getdate()))

查询 1

select S1 / S2 as 'smaller than 11',
       (S2 - S1) / S2 as 'greater than 11 + < 21'
from (
     select 1.0 * sum(case when datediff(day, dt1, dt2) < 11 then 1 else 0 end) as S1,
            1.0 * sum(case when datediff(day, dt1, dt2) < 21 then 1 else 0 end) as S2
     from YourTable
     where datediff(day, dt1, dt2) < 21
     ) as T

结果

| SMALLER THAN 11 | GREATER THAN 11 + < 21 |
--------------------------------------------
|            0.75 |                   0.25 |
于 2012-12-10T08:31:15.717 回答