Podrzuć jeszcze zrzut tej całej tabeli z bazy, to sobie wrzucę u siebie i zobaczę. (możesz jeszcze cały skrypt podrzucić (łączenie z bazą) dla ułatwienia).
Nie no, wszystko działa poprawnie. Sprawdź czy przypadkiem dwa razy nie wywołujesz tej funkcji.
BTW: pousuwaj te @ bo to tylko utrudnia znalezienie błędu jeżeli coś pójdzie nie tak przy zapytaniu.
Z reguły, zawsze unikałem używania samych cyfr w nazwach tabel, gdyż przeważnie wywoływało to jakieś głupie problemy.
Spróbuj pozmieniać nazwy tych tabel na jakieś m1, m2, m3 bądź cokolwiek z literą i sprawdź, czy problem się powtarza.
Jeśli się powtarza, to wtedy na 100% 2 razy w kodzie wywołujesz funkcję.