In dat geval zou ik de query opdelen in tenminste twee kleinere queries; een die ophaalt welke regels dubbele (zouden kunnen) zijn en een tweede die de rest van de informatie erbij haalt.
[SQL]
SELECT
gbkmut.crdnr,
gbkmut.bdr_hfl as Bedrag
FROM gbkmut
JOIN cicmpy on gbkmut.crdnr = cicmpy.crdnr
WHERE bkjrcode = 2013
AND periode = 5
AND reknr = 1500000
AND dagbknr < 900
GROUP BY crdnr,bdr_hfl
HAVING COUNT(*)>1
[/SQL]
Dat geeft alle dubbele combinaties van crediteurnr en bedrag, en die uitkomst kun je gebruiken om de rest van de data erbij te halen:
[SQL]
SELECT
gbkmut.crdnr,
cicmpy.cmp_name as NaamCrediteur,
gbkmut.bkjrcode as Boekjaar,
gbkmut.reknr as Grootboekrekening,
gbkmut.periode,
gbkmut.dagbknr as Dagboek,
gbkmut.oms25 as Omschrijving,
gbkmut.bdr_hfl as Bedrag
FROM gbkmut
JOIN cicmpy on gbkmut.crdnr = cicmpy.crdnr
WHERE
(crdnr, bdr_hfl)
IN
(
SELECT
gbkmut.crdnr,
gbkmut.bdr_hfl as Bedrag
FROM gbkmut
JOIN cicmpy on gbkmut.crdnr = cicmpy.crdnr
WHERE bkjrcode = 2013
AND periode = 5
AND reknr = 1500000
AND dagbknr < 900
GROUP BY crdnr,bdr_hfl
HAVING COUNT(*)>1
)
[/SQL]
En in de uitkomst daarvan moet je dan dus met de hand gaan kijken welke fout zijn en welke toeval.