Frage

Ich möchte Date_add 2 Mal in einer Prozedur verwenden, aber es gibt 0 Zeilen zurück (obwohl es Zeilen zurückgeben sollte)

Hier ist die Vorgehensweise

 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;

es funktioniert ohne date_add

Dank im Voraus!

//bearbeiten

Was ich jetzt habe:

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;

Aber die ab.absentid wird nicht abgerufen, woran liegt das?:(

War es hilfreich?

Lösung

Ich bin mir nicht sicher genau was Sie wollen, aber versuchen Sie die ganze Woche über etwas wie:

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;

Ich benutze BETWEEN um den Datumsbereich anzugeben ap.appointmentdate.Der av.avDays wird geändert, um entweder damit zu korrelieren ap.appointmentdate oder auch Zeilen ohne Termin anzeigen (dieses Verhalten wird angenommen, weil Sie einen haben). LEFT JOIN An tbl_appointment).Ich habe aufgehört DayOfweek(dag) ... Weil man sich eine ganze Woche vorstellt, ist das überflüssig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top