0

我建立了一个查询:

SELECT [Hours], TaskId FROM DailyTaskHours 
WHERE PointPerson = 'Dave Smith (smithd)' 
AND ActivityDate Between Cast('1/01/13 12:01:01' As DateTime) 
AND Cast('2/01/13 12:01:01' as DateTime)

这将返回所有小时数以及它们被计费的相关 taskId。TaskId 是 Task 表的外键。作为同一查询的一部分,我想返回一个名为 Name 的列和一个位于 Task 表上的名为 StoryId 的列。我该如何做到这一点?

4

1 回答 1

1

这应该这样做:

SELECT  D.[Hours], 
        D.TaskId,
        T.[Name],
        T.StoryId
FROM DailyTaskHours D
INNER JOIN Task T
    ON D.TaskId = T.TaskId
WHERE D.PointPerson = 'Dave Smith (smithd)' 
AND D.ActivityDate Between Cast('1/01/13 12:01:01' As DateTime) 
AND Cast('2/01/13 12:01:01' as DateTime)

但是您应该始终明确地写出您正在使用的日期时间格式 ( CONVERT(DATETIME,Date,Format),以及完整的年份。在您的情况下,是2013 年 1 月 2 日、2013 年 2 月 1 日、1913 年 1 月 2 日?等等。另外,在查询数据类型时'2/01/13'尽量避免使用(要踢的坏习惯:错误处理日期/范围查询BETWEENDATETIME

于 2013-09-16T19:41:35.617 回答