Sim existem um total de 240 encontros (8 jogos * 30 jornadas) para cada competição(desde que a competição tenha 16 clubes inscritos e seja um campeonato claro)
Vou testar
Operador em falta neste join
INNER JOIN (SELECT * FROM GOLOS) as GOLOS_EQUIPA2 ON (GOLOS_EQUIPA2.EQUIPA = E.VISITANTE AND GOLOS_EQUIPA2.ID_ENCONTRO = [E].ID)
alias e no segundo join
INNER JOIN EQUIPAS AS EQUIPA2 ON [E].VISITANTE=EQUIPA2.ID
é aquale problema que falei de mais de dois joins
operador em falta
[E].ID_COMPETICAO=13
AND GOLOS_EQUIPA1.EQUIPA = E.VISITADO
AND GOLOS_EQUIPA1.ID_ENCONTRO = [E].ID
AND GOLOS_EQUIPA2.EQUIPA = E.VISITANTE
AND GOLOS_EQUIPA2.ID_ENCONTRO = [E].ID
GROUPBY [E].ID
e aparece esta parte exactamente do script
o problema é se sintaxe de certeza. por exemplo ontem quando andava de volta do problema dos joins, consegui resolver o problema muito antes de realmente funcionar porque, se só houver um join não é preciso coloca-lo entre () mas se houver dois, então o primeiro join deve ficar entre () e o segundo ja fica fora.
ex: FROM (ENCONTROS AS E INNER JOIN EQUIPAS AS EQUIPA1 ON [E].VISITADO=EQUIPA1.ID)INNER JOIN EQUIPAS AS EQUIPA2 ON [E].VISITANTE=EQUIPA2.ID
Os () são opcionais. Podes nem usar parentesis se quiseres.