1 つの列 LeadDate (データ型は datetime ) を別のテーブル (EmployeeWorkTime という名前) に保存された値と比較する必要があります。LeadDate 列の形式は、「2006-08-08 11:50:51.000」のようになります。
employeeworktime テーブルは次のようになります。
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 にあり、リードタイムをリード日と同じ 1 つの列のみと比較したいと考えています。どうすればそれができますか?
たとえば、最初のリードの場合、dayofweekname は Thursay です。リードタイムの列であるリードタイムを木曜日の列に合わせたいのですが、それを達成するためのコードをどのように記述すればよいでしょうか。
どうもありがとうございました。
新しいビューの作成に使用されるコマンド:
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