使用A
LEFT OUTER JOIN
select contract_number, comp, ml, party.room,
min(doses.begintime), max(doses.endtime),
sum(timestampdiff(second, doses.begintime, doses.endtime))/3600.
from doses
LEFT OUTER JOIN party
on party.id=doses.party_id
join contracts
on contracts.id=party.contract_id
where contracts.id in(97,144,145)
group by party.id
order by contract_number, party.room;
这将返回基于剂量数据的最小值、最大值和值。如果在没有匹配的参与方条目时希望这些值为零,则可以执行以下操作:
CASE party.room WHEN NULL THEN 0 ELSE min(doses.begintime) END
不确定case的语法,但您可以检查它
here