3

我需要将一列 LeadDate (数据类型为 datetime )与保存在另一个表(名为 EmployeeWorkTime)中的值进行比较。LeadDate 列的格式类似于“2006-08-08 11:50:51.000”。

员工工作时间表是这样的:

SyStaffId       Associate Name           Monday    Tuesday  Wednesday Thursday   Friday    Saturday        Sunday
34128           Natasha Dawson            0919      0918      0920      0918      0918      WKEND           WKEND    
34169           Elaine Bueno              0918      1019      0918      1019      0918      WKEND           WKEND    
34385           Aida Rodriguez            0918      1019      0918      1019      0918      WKEND           WKEND    
34419           Sy Lim                    1019      1019      1019      1019      0918      WKEND           WKEND     

我创建了一个视图并包含了比较所需的所有字段。新视图如附件所示。但是当我想将提前期与时间列中的值进行比较时。我遇到了一些困难。由于提前期不同,它们位于 DayofWeekName 列中,我想将提前期与仅与提前期相同的一列进行比较。我怎么能那样做?

例如,对于第一个潜在客户,dayofweekname 是 Thursay,我想将 Leadtime 列作为周四列的 Leadtime 列,我该如何编写代码来实现它。

非常感谢。

用于创建新视图的命令:

Create View dbo.cstAdmissionDailyReportLeadCount_jy
AS
SELECT     dbo.syStudent.AmRepID, dbo.syStudent.LeadDate, DATEPART(dw, syStudent.LeadDate) AS DayofWeekNumber, DATEPART(hh, syStudent.LeadDate)
                      AS LeadHour, dbo.EmployeeWorkTime.[Associate Name], DATENAME(dw, syStudent.LeadDate) AS DayofWeekName, EmployeeWorkTime.Monday,
                      EmployeeWorkTime.Tuesday, EmployeeWorkTime.Wednesday, EmployeeWorkTime.Thursday, EmployeeWorkTime.Friday,
                      EmployeeWorkTime.Saturday, EmployeeWorkTime.Sunday, CASE WHEN DATEPART(hh, syStudent.LeadDate)
                      < 18 THEN 1 ELSE 0 END AS CountAsEffectiveLead
FROM         dbo.syStudent INNER JOIN
                      dbo.EmployeeWorkTime ON dbo.syStudent.AmRepID = dbo.EmployeeWorkTime.SyStaffId 
4

1 回答 1

0

将此添加到您的选择子句有帮助吗?

case when DATENAME(dw, syStudent.LeadDate) = "Monday" then EmployeeWorkTime.Monday
when DATENAME(dw, syStudent.LeadDate) = "Tuesday" then EmployeeWorkTime.Tuesday
when DATENAME(dw, syStudent.LeadDate) = "Wednesday" then EmployeeWorkTime.Wednesday
when DATENAME(dw, syStudent.LeadDate) = "Thursday" then EmployeeWorkTime.Thursday
when DATENAME(dw, syStudent.LeadDate) = "Friday" then EmployeeWorkTime.Friday
when DATENAME(dw, syStudent.LeadDate) = "Saturday" then EmployeeWorkTime.Saturday
else EmployeeWorkTime.Sunday end as ewt_day
于 2012-09-18T21:05:55.153 回答