Navrhoval bych, abyste do příkazu select vložili podmínky klauzule kde a pro každý záznam vrátili "skóre". Zcela jej odstraňte z klauzule where a může vám poskytnout přehled o tom, proč vám chybí záznamy, pokud jsou vráceny se skóre 0.
Case when condition Then 5when condition then 4Etc...else 0End case
Jakmile budete mít své výsledky ohodnocené, můžete seřadit podle sestupného skóre a vzít první na osobu. Nebo přidejte další vnější dotazy, abyste vraceli pouze řádky s maximálním skóre na osobu.
Omlouvám se za odpověď z mého telefonu.