En ekstra parameter i where clause giver forkert output
HejJeg har denne kode der udtrækker den fisk med den største vægt, for hver art, for hvert medlem pr år.
Problemet er at hvis der nu er et medlem der indvejer samme art med nøjagtig samme vægt, så kommer begge fisk ud i den art. Det er ikke meningen. Jeg forsøgte så at sætte ind at hvis der var ens vægt, så skulle den tage den længste af de 2. Dvs max laengde. Men det fjernede så nogle andre resultater, som var rigtige nok. Er det nogle der kan gennemskue det og hjælpe mig med at skrive nedenstående korrekt ?
SELECT a.id,a.medlemsnr,a.navn,a.baadnavn, a.Vaegt maxvaegt
FROM ct_storfanger_indberetninger a,
(
select medlemsnr, art, YEAR(dato) year, MAX(vaegt) maxVaegt
FROM ct_storfanger_indberetninger
where godkendt=1
GROUP BY medlemsnr, art, YEAR(dato)
) maxArt
WHERE a.medlemsnr = maxArt.medlemsnr
ANd a.art = maxArt.art
AND a.vaegt = maxArt.maxVaegt
AND YEAR(a.dato) = maxArt.year
and a.art='$currentart'
AND YEAR(a.dato)=$aarstal
and a.godkendt=1
and a.storfanger=1
ORDER BY maxvaegt DESC, a.laengde ASC
LIMIT 10;