我要加入三个表,以查看物业维护人员完成一项任务需要多长时间。我需要属性名称,任务是什么,花费了多长时间以及这个人是谁。
要注意的是,有些任务没有名字就进入了系统,这完全没问题,因此将其呈现为NULL。但是要跟踪执行一项任务需要花费多长时间,没有名称的任务在没有时间的情况下会显示为None。那也行。上面印有人名的任务显示两行-一行用于花花公子,另一行用于NULL。
如果任务中有一个人的名字,我不希望NULL / None。在下面,您可以看到查询的简化版本。我只想要显示Mikhail的行。
有什么想法吗?感谢您的帮助。
结果
1 2415 35719 NULL Lobby ceiling and wall leaking
2 2415 35719 Mikhail Lobby ceiling and wall leaking
预期
2 2415 35719 Mikhail Lobby ceiling and wall leaking
代码:
SELECT
p.sCode "Property",
p.sAddr1 "PropertyName",
wo.scode,
COALESCE(person.sfirstname + ' ' + person.ulastname, 'None'),
wo.sbriefdesc,
wo.spriority,
wo.scategory,
wo.ssubcat,
ISNULL(wod.dtactstart, 0),
ISNULL(wod.dtactfinish, 0),
/* COALESCE(ROUND((CAST((wo.dtwcompl - wo.dtcall) AS FLOAT) * 24.0 * 60), 3), 0) AS TechTimeInMins */
COALESCE(ROUND((CAST((wod.dtactfinish - wod.dtactstart) AS FLOAT) * 24.0), 3), 0) AS TechTimeInHours,
COALESCE(ROUND((CAST((wod.dtactfinish - wod.dtactstart) AS FLOAT)), 3), 0) AS TechTimeInDays
FROM
MM2WO wo
LEFT OUTER JOIN
property p ON wo.hProperty = p.hMy
LEFT OUTER JOIN
mm2wodet wod ON wod.hWo = wo.hMy
LEFT OUTER JOIN
person ON person.hmy = wod.hperson
WHERE
1 = 1
AND wo.sstatus IN ('Work Completed')
ORDER BY
p.sAddr1 ASC, wo.scode
答案 0 :(得分:0)
From MM2WO wo
left outer join property p on wo.hProperty = p.hMy
left outer join mm2wodet wod on wo.hMy= wod.hWo
left outer join person on person.hmy = wod.hperson
where 1 = 1 and wod.hperson is not null and
person.sfirstname is not null and person.ulastname is not null
In this case id sfirstname or ulastname is null it will replace name with space for that person
。