mysql date_add 2 times in procedure
-
11-12-2019 - |
Question
i want to use Date_add 2 times in a procedure, but it returns 0 rows (while it should return rows)
Here is the procedure
select av.*, ap.*,c.* from tbl_available av
left join tbl_appointment ap on av.avHours = ap.appointmenttime
and ap.calendarid = kalenderId
and ap.appointmentdate = DATE_ADD(dag, INTERVAL 6 DAY)
left join tbl_client c on ap.clientid = c.clientid
where av.avCalendarId = KalenderId
and av.avDays = DayOfweek(DATE_ADD(dag, INTERVAL 6 DAY))
order by avHours;
it works without the date_add
thanks in advance!
//edit
What i have now:
select av.*, ap.*,c.*, ab.absentid from tbl_available av
left join tbl_appointment ap on av.avHours = ap.appointmenttime
and ap.calendarid = kalenderId
and ap.appointmentdate BETWEEN dag AND DATE_ADD(dag, INTERVAL 6 DAY)
and (av.avDays = DayOfweek(ap.appointmentdate) OR ap.appointmentdate IS NULL)
left join tbl_client c on ap.clientid = c.clientid
left join tbl_absent ab on av.avHours = ab.ababsent
and ab.abHoliday = dag
and ab.abCalendarID = kalenderId
where av.avCalendarId = kalenderId
order by avDays,avHours;
But the ab.absentid is not fetched, why is that? :(
Solution
I'm not sure exactly what you want, but for the whole week, try something like:
select av.*, ap.*,c.* from tbl_available av
left join tbl_appointment ap on av.avHours = ap.appointmenttime
and ap.calendarid = kalenderId
and ap.appointmentdate BETWEEN dag AND DATE_ADD(dag, INTERVAL 6 DAY)
and (av.avDays = DayOfweek(ap.appointmentdate) OR ap.appointmentdate IS NULL)
left join tbl_client c on ap.clientid = c.clientid
where av.avCalendarId = KalenderId
order by avHours;
I'm using BETWEEN
to specify the date range for ap.appointmentdate
. The av.avDays
is changed to either correlate to ap.appointmentdate
or also show rows with no appointment (assumed this behavior because you have a LEFT JOIN
on tbl_appointment
). I have left off DayOfweek(dag) ...
because you are looking at a whole week so this is redundant.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow