Я присоединяюсь к трем таблицам, чтобы узнать, сколько времени требуется специалисту по обслуживанию имущества для выполнения задачи. Мне нужно имя собственности, какова была задача, сколько времени это заняло и кем был этот человек.
Подвох состоит в том, что некоторые задачи были введены в систему без чьего-либо имени, что вполне нормально, поэтому оно отображается как NULL. Но чтобы отследить, сколько времени потребовалось для выполнения задачи, задачи, которые не имели названия, показываются отлично, как «Нет, без времени». Это хорошо. Задачи с именем человека на нем показывают две строки - одну для чувака и одну для NULL.
Я не хочу иметь значение NULL / None, если в задании указано имя парня. Ниже вы видите урезанную версию запроса. Я хочу только строку, которая показывает Михаила.
Мысли? Спасибо за любую помощь.
РЕЗУЛЬТАТ
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