0

テーブルから最小値と最大値を選択するクエリに 2 行あります。返される行は最大 2 行だけですが、返される行が 1 つだけの場合は、2 番目の行には何も返されたくありません。

いいえ:

MAX(CASE WHEN bd.DayText = 'Tuesday' and bd.BookingDuration = 3 
and CONVERT(time(0), bd.StartTime) < CONVERT(time(0), '12:00:00') 
AND bd.NoOfHOurs < 5.5 and s.PrimarySchool = 1 THEN bd.ID ELSE NULL END)
"TuesdayHourlyAM",

MIN(CASE WHEN bd.DayText = 'Tuesday' and bd.BookingDuration = 3 
and CONVERT(time(0), bd.StartTime) < CONVERT(time(0), '12:00:00') 
AND bd.NoOfHOurs < 5.5 and s.PrimarySchool = 1 THEN bd.ID ELSE NULL END)
"TuesdayHourlyAM2",     

したがって、1 行が返された場合、TuesdayHourlyAM2 は null を返す必要があります。

何か案は?

ありがとう

4

1 に答える 1

1

caseステートメントでラップしてみてください:

(case when count(*) > 1
      then MIN(CASE WHEN bd.DayText = 'Tuesday' and bd.BookingDuration = 3 and
                         CONVERT(time(0), bd.StartTime) < CONVERT(time(0), '12:00:00') AND
                         bd.NoOfHOurs < 5.5 and s.PrimarySchool = 1
                    THEN bd.ID ELSE NULL
               END)
 end) as TuesdayHourlyAM2
于 2013-06-21T14:59:51.993 に答える