我需要将一列 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