Sql server 2005 范围内的计数日期差异

Sql server 2005 范围内的计数日期差异,sql-server-2005,Sql Server 2005,我需要帮助在SQL2005中创建查询 我有4个日期:1个标准开始日期和3个要比较的日期。 我需要以10天为单位计算日期差 datediffday,startdate,enddate1 从1到10、从11到20、从21到30的范围将出现多少倍 这是每3个结束日期 然后是所有3个结束日期1到10的总和,aso 510次10和

我需要帮助在SQL2005中创建查询

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

datediffday,startdate,enddate1

从1到10、从11到20、从21到30的范围将出现多少倍

这是每3个结束日期

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

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

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

我说清楚了吗

提前谢谢 1地质咨询

@米奇·麦特,这不是一个糟糕的问题,这是一个很难解释的问题! 没有表格可以解释这一点。几乎每个表都有一个datatimefield

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

例如:

datediffday,DateTime1,DateTime2=2

datediffday,DateTime1,DateTime2=3

datediffday、DateTime1、DateTime2=11

datediffday,DateTime1,DateTime2=2

datediffday,DateTime1,DateTime2=3

datediffday、DateTime1、DateTime2=11

datediffday、DateTime1、DateTime2=7

datediffday、DateTime1、DateTime2=6

结果是

    < 11  = ***6*** (smaller then 11)
10及 MS SQL Server 2008架构设置:

问题1:

:


现在还不清楚你想做什么,请用你的表格结构、一些样本数据和期望的结果编辑你的帖子。否则我觉得这个问题就要结束了。所以,1个开始日期和3个结束日期给你3个句点。你要数一数一个月三十年中的每一年在这三个时期中出现的次数。是这样吗?不过,我还是不确定你下一步要做什么。
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()))
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 |