Pytanie dlaczego MySQL wchodzi do warunku IF (firstDate IS NULL) mimo iż wartość została pobrana prawidlowo.
Jeśli wywalę tego IF'a wartość zostanie zwrócona sad.gif

Gdy zapuszczę query w koncoli przy uzyciu parametrów przekazanych do funkcji to też dostanę wartości.
Podejrzewam brak jakiejś pierdółki, ale już nie mam pomyslu.

  1. DECLARE firstDate DATE;
  2. ...
  3. ELSE
  4. BEGIN
  5. SET firstDate =
  6. (
  7. SELECT MAX(ct.dt)
  8. FROM calendar_table ct JOIN terminy t ON ct.y = t.yFrom AND ct.m = t.mFrom
  9. WHERE t.Id = periodId
  10. AND ct.d <= DAY(selectedDate)
  11. AND ct.m = MONTH(selectedDate)
  12. AND ct.y = YEAR(selectedDate)
  13. AND weekday(ct.dt) = t.periodEnd + 1
  14. );
  15.  
  16. IF (firstDate IS NULL) THEN
  17. SET firstDate =
  18. (
  19. SELECT MAX(ct.dt)
  20. FROM calendar_table ct JOIN terminy t ON ct.y = t.yFrom AND ct.m = t.mFrom
  21. WHERE t.Id = periodId
  22. AND ct.m = MONTH(selectedDate) - 1
  23. AND ct.y = YEAR(selectedDate)
  24. AND weekday(ct.dt) = t.periodEnd + 1
  25. );
  26. END IF;
  27. END;
  28. END IF;
  29. ...