こんにちはSQL SVR 2008のgurus。SQL Server 2008の式で埋め込まれたケース
SQL初心者の方には、ある方向を期待しています。私は、給与昼休みの資格があるかどうかを確認するために、各従業員のフィールド値に対して式をチェックする必要があるSELECTステートメントがあります。作業に必要な時間数は、minimumhoursというフィールドのworkerテーブルプロファイルにあり、ワークフローと呼ばれるテーブルのログインフィールドとログアウトフィールドの式から作業時間を計算します。次のように私がつなぎ合わせてきた文は(STARTDATEと終了日は、ユーザが選択可能な値になります)です。
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