Sql 计算后对查询查找范围的影响

Sql 计算后对查询查找范围的影响,sql,database,sql-server-2008,Sql,Database,Sql Server 2008,我有一个视图V1,其中有一列Name,DateOfBirth 在我的存储过程中,我创建了一个临时表T2,如下所示 MinAge MaxAge Category 0 5 Under 5 13 19 Teenager 我的存储过程查询如下: Select V1.Name, T2.Category from V1, T2 where DATEDIFF(hour,V1.DateOfBirth ,GETDATE())/8766 between T2.minage

我有一个视图
V1
,其中有一列
Name
DateOfBirth

在我的存储过程中,我创建了一个临时表
T2
,如下所示

MinAge MaxAge Category
0      5      Under 5
13     19     Teenager
我的存储过程查询如下:

Select V1.Name, T2.Category 
from V1, T2 
where DATEDIFF(hour,V1.DateOfBirth ,GETDATE())/8766 between T2.minage and T2.maxage

到目前为止,我的结果集看起来还不错。我的问题是,由于这两个表之间没有直接的关系,向前看,我的查询结果会受到任何影响吗

由于没有答案,我不得不假设不会有重大影响。尽管@GregHNZ的建议很有帮助。谢谢。

在他们的出生日期上加上年比除以天或小时更容易确定年龄。我会将他们的出生日期加上5年,并将其与getdate()或您的报告日期进行比较,以确定在该时间点谁的年龄在5岁以下/以上。

您的问题是什么?你在寻找更好的方法吗?请发布原始表格的结构,直接从这些表格中生成结果集可能更容易。我要求这种方法的准确性。就个人而言,如果我创建临时表(而不是保留一个永久表)而不是minAge和MaxAge,我会将MinBirthDate和MaxBirthDate作为GETDATE()-MaxAge和GETDATE()-minAge计算一次。然后,您不必在每一行上执行DateDiff,您只需要在t2.MinBirthDate和t2.maxBirthDate之间使用v1.DateOfBirth,您使用的RDBMS包括MS SQL Server、Oracle、MySQL和Postgre?请重新标记您的问题以获得更好的答案。