【发布时间】:2012-09-18 20:41:38
【问题描述】:
我需要将一列 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,并且我想将作为 Leadhour 列的 Leadtime 列复制到 Thursday 列,我该如何编写代码来实现它。
非常感谢。
用于创建新视图的命令:
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
【问题讨论】: