kan dit d.m.v. een SQL query?

Status
Niet open voor verdere reacties.

marckraak

Gebruiker
Lid geworden
5 dec 2001
Berichten
57
Hoi,

Ik wil weten of het mogelijk d.m.v. een query de onderstaande tabellen te koppelen:

tabel 1

vraag vraagsoort score
1 knollen 3
2 knollen 2
3 citroenen 4
4 citroenen 5
5 citroenen 2

tabel 2

soort min. score max. score conclusie
knollen 1 3 lekker
knollen 4 8 niet lekker
knollen 9 20 fijn
citroenen 0 5 tof
citroenen 6 10 super
citroenen 11 20 jofel


gewenste uitvoer query

soort conclusie
knollen niet lekker (score is 3+2)
citroenen jofel (score is 4+5+2)

Kan dit zo gemaakt worden of moet je dit programmeren met select case / switch case o.i.d.

Marc
 
Met de onderstaande SQL heb je je resultaat (ORACLE sql):
SELECT TAB2.SOORT
, TAB2.CONCLUSIE
FROM TABEL2 TAB2
, (SELECT SUM(TAB1.SCORE) TOTSCORE
, TAB1.VRAAGSOORT
FROM TABEL1 TAB1
GROUP BY TAB1.VRAAGSOORT) TAB_SUM
WHERE TAB2.SOORT = TAB_SUM.VRAAGSOORT
AND TAB2.MIN_SCORE <= TAB_SUM.TOTSCORE
AND TAB2.MAX_SCORE >= TAB_SUM.TOTSCORE

Als je geen inline queries mag gebruiken kan het ook met subqueries:
SELECT TAB2.SOORT
, TAB2.CONCLUSIE
FROM TABEL2 TAB2
WHERE TAB2.MIN_SCORE <= (
SELECT SUM(TAB1.SCORE)
FROM TABEL1 TAB1
WHERE TAB1.VRAAGSOORT = TAB2.SOORT)
AND TAB2.MAX_SCORE >= (
SELECT SUM(TAB1.SCORE)
FROM TABEL1 TAB1
WHERE TAB1.VRAAGSOORT = TAB2.SOORT)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan