Query combineren van 3 tabellen

Status
Niet open voor verdere reacties.

harolda1980

Gebruiker
Lid geworden
7 aug 2007
Berichten
488
Ik ben bezig met het maken van een overzicht van gegevens en ik zou de gegevens uit 3 tabellen willen weergeven.

Als hoofdtabel is er de locatie
dan zijn er 3 tabellen met allemaal andere gegevens( taken, signalen,documenten).
Deze gegevens zou ik eigenlijk willen combineren in een query alleen als ik dat nu doe komt alles op de zelfde regel.

En eigenlijk zou ik willen dat de query stuk voor stuk de tabellen afgaat en de informatie ophaalt en onder elkaar zet.

De vaste volgorde is niet erg maar wel dat alle informatie op een aparte regel getoond word.
 
hoe kunnen deze tabellen worden gekoppeld aan elkaar? Wat is de relatie/sleutel? Je moet namelijk unieke gegevens hebben om te kunnen koppelen zoals bijvoorbeeld id in kollom A en id in kollom B.

voorbeeld:

SELECT a.taken, b.signalen, c.documenten
FROM tabel_naam A, tabel_naam B, tabelnaam C
where a.?relatie? = b.?relatie?
and b.?relatie? = c.?relatie?

Gr. Tim
 
Er is in alle 3 de tabellen een locatie_koppelingsID(unieke nummer van de locatie).
Waarop alles gelinkt is.
 
OK :D
nou, daar gaan we, laat je even weten of het gelukt is?

SELECT a.taken, b.signalen, c.documenten
FROM tabel_naam A, tabel_naam B, tabelnaam C
where a.locatie_koppelingsID = b.locatie_koppelingsID
and b.locatie_koppelingsID = c.locatie_koppelingsID

in de from moet je zelf nog even de tabelnamen aangeven waar jij je gegevens uit wilt halen, dat weet ik ja niet?
 
Is dat niet gewoon een query met sub query's en dat levert nog steeds alle gegevens op 1 regel op als ik het goed lees!?
 
Als ik nog eens een gok doe:

Dan moet je met Union gaan werken!

(even code die ik voor mij geschreven heb maar is om een idee te geven)

SELECT KSTP_CODE, PRJC_CODE,

BUDGETHOUDER, NAAM, EXVD_ALFA_03

FROM L2WF_PERS_PER_DIM

JOIN GEBRUIKERS ON BUDGETHOUDER = ID

WHERE KSTP_CODE = '500300'

UNION


SELECT KSTP_CODE , PRJC_CODE, VERVANGER_BUDGETHOUDER_1, NAAM, EXVD_ALFA_03

FROM L2WF_PERS_PER_DIM

JOIN GEBRUIKERS ON VERVANGER_BUDGETHOUDER_1 = ID

WHERE KSTP_CODE = '500300'
 
Kijk dat klinkt goed.
Ik ga er eens mee aan de slag;-)

Heb genoeg om mee te vogelen nu...
 
Beetje uitgebreid maar wel onder elkaar.
[SQL]SET SERVEROUTPUT ON SIZE 1000000 FORMAT WRAPPED

DECLARE
l_taken tabel_naam_a.taken%TYPE;
l_signalen tabel_naam_b.taken%TYPE;
l_documenten tabel_naam_c.taken%TYPE;
BEGIN
FOR r IN (SELECT DISTINCT a.koppelingsid, a.taken
FROM tabel_naam a
WHERE 1 = 1)
LOOP
l_taken := r.taken;

SELECT b.signalen
INTO l_signalen
FROM tabel_naam b
WHERE b.koppelingsid = r.koppelingsid;

SELECT c.documenten
INTO l_documenten
FROM tabel_naam c
WHERE c.koppelingsid = r.koppelingsid;

DBMS_OUTPUT.put_line ('Taken: ' || l_taken);
DBMS_OUTPUT.put_line ('Signalen: ' || l_signalen);
DBMS_OUTPUT.put_line ('Documenten: ' || l_documenten);
DBMS_OUTPUT.put_line
('------------------------------------------------------');
END LOOP;
END;
/

SPOOL OFF;[/SQL]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan