Chi-squared approximation may be incorrect
It gave the warning because many of the expected values will be very small and therefore the approximations of p may not be right.
R you can use
chisq.test(a, simulate.p.value = TRUE) to use simulate p values.
However, with such small cell sizes, all estimates will be poor. It might be good to just test pass vs. fail (deleting “no show”) either with chi-square or logistic regression. Indeed, since it is pretty clear that the pass/fail grade is a dependent variable, logistic regression might be better