UNION result optellen

Status
Niet open voor verdere reacties.

Pickleman

Gebruiker
Lid geworden
6 jul 2006
Berichten
31
UNION result optellen (Advantage database Data Architect: v8.0.0.4 vs v6.20.0.7

Hoi,

Ik heb onderstaande query:

Code:
SELECT k.naam as kluster, s.naam as agent, 250 * COUNT(DISTINCT h.hypotheeknummer) as TopPunten
FROM klusters k, subagent s, hypprov h, maatsch m
WHERE k.klusternummer IN (1,14,16,28)
AND k.klusternummer = s.kluster
AND s.agentnummer = h.subagent
AND h.maatschappij = m.maatschappijnummer
AND m.maatschappijnummer IN (95, 58, 20, 21, 320)
AND h.periode >= 200601
AND hoofdsom > 100000
GROUP BY k.naam, s.naam
UNION
SELECT k.naam as kluster, s.naam as agent, 200 * COUNT(DISTINCT h.hypotheeknummer) as TopPunten
FROM klusters k, subagent s, hypprov h, maatsch m
WHERE k.klusternummer IN (1,14,16,28)
AND k.klusternummer = s.kluster
AND s.agentnummer = h.subagent
AND h.maatschappij = m.maatschappijnummer
AND m.maatschappijnummer IN (38)
AND h.periode >= 200601
AND hoofdsom > 100000
GROUP BY k.naam, s.naam


Dit gaat over een puntentoekenningssysteem. Voor alle op 1 na situaties krijg je onder bepaalde condities 250 punten, in dat andere geval slechts 200.
Nu komt het voor dat de combinatie kluster/agent zowel records in de bovenste ALS in de onderste query records oplevert.

Vraag: Is het mogelijk om van deze query iets te maken dat ik slecht 1 records er uit krijg met de sum van die twee?

Groetjes Peter
 
Laatst bewerkt:
Met wat verder zoekwerk ben ik tot deze query gekomen:

Code:
SELECT kluster, agent, Sum(TopPunten) as TopPunten
FROM
(
SELECT k.naam as kluster, s.naam as agent, 250 * COUNT(DISTINCT h.hypotheeknummer) as TopPunten
FROM klusters k, subagent s, hypprov h, maatsch m
WHERE k.klusternummer IN (1,14,16,28)
AND k.klusternummer = s.kluster
AND s.agentnummer = h.subagent
AND h.maatschappij = m.maatschappijnummer
AND m.maatschappijnummer IN (95, 58, 20, 21, 320)
AND h.periode >= 200601
AND hoofdsom > 100000
GROUP BY k.naam, s.naam
UNION
SELECT k.naam as kluster, s.naam as agent, 200 * COUNT(DISTINCT h.hypotheeknummer) as TopPunten
FROM klusters k, subagent s, hypprov h, maatsch m
WHERE k.klusternummer IN (1,14,16,28)
AND k.klusternummer = s.kluster
AND s.agentnummer = h.subagent
AND h.maatschappij = m.maatschappijnummer
AND m.maatschappijnummer IN (38)
AND h.periode >= 200601
AND hoofdsom > 100000
GROUP BY k.naam, s.naam
) as TmpResult
GROUP BY kluster, agent

Iemand heeft deze voor mij getest in Avantage Data Architect v8.0.0.4
Ik werk echter in Avantage Data Architect v6.20.0.7
Daar blijkt de bovenstaande code fouten te geven:
<identifier > missing table name . There was a problem parsing the tabes names after the FROM keyword in your SELECT statement. ~~Location of error in the SQL statement is: 59 (line 3 column 1)

Iemand ervaring er mee?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan