Je l'instruction SQL suivante qui retourne 2 lignes (jours de réservation)lignes de fusion sur instruction SQL
SELECT bd.ID, t.FirstName, t.Surname,
CASE WHEN bd.BookingDuration = 3 AND CONVERT(time(0), bd.StartTime) < CONVERT(time(0), '12:00:00') AND bd.NoOfHOurs < 5.5 THEN bd.ID ELSE NULL END as 'TuesdayHourlyAM',
CASE WHEN bd.BookingDuration = 3 AND CONVERT(time(0), bd.StartTime) < CONVERT(time(0), '12:00:00') AND bd.NoOfHOurs < 5.5 THEN bd.ID ELSE NULL END as 'TuesdayHourlyAM2'
from BookingDays bd join
(
select ID, MIN(StartTime) as minx, MAX(StartTime) as maxx
from BookingDays
where BookingDate = CONVERT(date, '18/06/2013', 103) and BookingType = 0
group by ID
)
tmin
on bd.ID = tmin.ID and bd.StartTime = tmin.minx
inner join Teachers t on bd.TeacherID = t.ID
where t.Surname = 'cairns'
group by bd.ID, bd.StartTime, bd.DayText, t.Firstname, t.Surname, bd.BookingDate, bd.BookingDuration, bd.NoOfHours, tmin.minx, tmin.maxx
Ce retour -
Ce que je cherche est une table avec un format similaire, toutefois en 1 ligne:
Prénom | Nom | MardiHourlyAM1 | TuesdayHourlyAM1Start | MardiHourlyAM1End | MardiHourlyAM2 | TuesdayHourlyAM2Start | TuesdayHourlyAM2End
TuesdayHourlyAM1: BookingDayID TuesdayHourlyAM2: BookingDayID Début/Fin: début et fin des temps pour les réservations
Où AM1 est la plus petite heure de début et AM2 est la plus grande heure de départ (il n'y aura jamais plus que 2 jours de réservation pour ce critère).
Je peux voir où vous allez avec ceci et cela devrait fonctionner, cependant 0 lignes sont retournées. Lorsque j'enlève le top 1 des deux jointures, j'obtiens 2 rangées de données, mais la rangée du haut montre la première réservation deux fois, alors la deuxième rangée montre la deuxième réservation deux fois. Merci – dynamicuser
bien sûr, désolé, essayez la dernière! – JamieA
J'adore! Merci – dynamicuser