안녕하십니까. SQL SVR 2008 전문가입니다.SQL Server 2008의식이 포함 된 사례가
SQL 초보자로서 나는 어떤 방향으로 바라고 있습니다. 각 근로자가 유급 점심 식사를받을 자격이 있는지 확인하기 위해 필드 값에 대해 표현식을 검사해야하는 SELECT 문이 있습니다. 작업해야하는 시간 수는 minimumhours라는 필드의 worker 테이블 프로필에 있으며, workflow라는 테이블의 로그인 및 로그 아웃 필드에 대한 식에서 근무한 시간을 얻습니다. 다음과 같이 내가 함께 재현 한 성명합니다 (STARTDATE 및 ENDDATE는 사용자가 선택할 수있는 값이 될 것입니다)입니다 :
DECLARE @StartDate AS DateTime
SET @StartDate = CAST('03/25/2012' AS DATE)
DECLARE @EndDate AS DateTime
SET @EndDate = CAST('03/31/2012' AS DATE)
SELECT
w.Firstname
,w.Lastname
,wf.Login
,wf.logout
,ROUND(CAST(DATEDIFF(MI, wf.Login, wf.Logout) AS DECIMAL)/60,2) AS [Hours]
,w.LunchDeduction AS [Lunch Deduction]
CASE [HoursBilled] =
WHEN DATEDIFF(hour, wf.Login, wf.Logout) < wf.MinimumHours THEN
ROUND(CAST(DATEDIFF(MI, wf.Login, wf.Logout) AS DECIMAL)/60,-
w.LunchDeduction,2)
WHEN DATEDIFF(hour, wf.Login, wf.Logout) >= wf.MinimumHours THEN
ROUND(CAST(DATEDIFF(MI, wf.Login, wf.Logout) AS DECIMAL)/60,- 0,2)
END
FROM Workers AS w
JOIN Workflow AS wf
ON wf.LoggedInWorkerid = w.ID
JOIN Roles AS r
ON w.RoleID = r.RoleID
WHERE (r.Descript = 'Hourly')
AND wf.Login >= @StartDate AND wf.Logout <= @EndDate
은 내 요구 사항에 맞게 듯 예를 보지했으며,
무엇이 문제입니까? – RBarryYoung