画像がアクティブとしてマークされていて、ユーザーがリンクをクリックした場合は、アクティブな画像に移動する必要があります。それ以外の場合は、アップロードされた(MAX)最新の画像に移動する必要があります。私の最初の選択は機能しますが、完全ではありません。
これが私の選択です:
select
b.image_id, b.active, c.id as event_id
from event.dbo.lite() a
left outer join event.dbo.dia_tracker b on a.code = b.patient_id
and image_id = (select max(image_id) from event.dbo.dia_tracker where patient_id = {$patient->hex})
left outer join event.dbo.ev c on a.code = c.patient_id and c.task_id in ('WR','RC') and c.status<>0
where a.code = {$patient->hex}
これが私の新しい選択で、少し助けが必要です。
select
image_id,
active,
case when active <>1 than image_id = (select max(image_id) from event.dbo.dia_tracker where patient_id = 'DSMA')
from event.dbo.dia_tracker
where active = '1' and image_id = (select max(image_id) from event.dbo.dia_tracker where patient_id = 'DSMA')
それは少し混乱したATMです。isnullを使用して、より少ないコード行でより多くのことを実行できると考えていました。
アップデート:
select
*,
ISNULL(active,image_id) as image
from event.dbo.dia_tracker
where active = '1' and image_id = (select max(image_id) from event.dbo.dia_tracker where patient_id = 'DSMA')
まだ助けが必要です。