Avatar billede -chriz- Nybegynder
02. september 2004 - 15:51 Der er 9 kommentarer og
1 løsning

Joine 3 tabeller til én

Hej,

Jeg har 3 tabeller jeg gerne vil have joinet, som jeg har read-adgang til fra Access (dataene ligger i en Oracle database, men det er vist sagen uvedkommende).

Jeg har 3 tabeller med flg. opbygning:

TIMESTAMP            MÆNGDE
DD-MM-YYYY TT:MM:SS  (tal)

Dem vil jeg gerne have smidt over i en samlet tabel så jeg har ét timestamp for hver dag (altså eks. 20-08-2004 summerer mængden op på ALLE mængderne fra denne dag)

Der er en del af disse tupler pr. dag, og har p.t. "bare" lavet det så jeg har 3 forespørgsler - én til hver tabel, der indeholder et summeret tal pr. dag..

Men... hvordan er det nu liiige jeg får lavet den der ovenstående summerings-tabel med alle 3 tabeller samlet i én mængde pr. dag...?
Avatar billede jensen363 Forsker
02. september 2004 - 15:54 #1
Du kan lave en UNION forespørgsel på de tre tabeller først, og her efterfølgende summere/gruppere på denne forespøgsel
Avatar billede -chriz- Nybegynder
02. september 2004 - 15:55 #2
Jeg sidder desværre ikke lige ved maskinen hvor jeg har adgang til Access'en, men jeg vil prøve det af i morgen..

Andre forslag? Det må gerne være krydret med lidt SQL... som jeg vist er blevet lidt rusten i efterhånden, når det kommer til den mere eksotiske slags ;)
Avatar billede jensen363 Forsker
02. september 2004 - 15:58 #3
Din UNION forespørgsel kan se således ud :

SELECT TabelA.TIMESTAMP, TabelA.ANTAL
FROM TabelA
UNION
SELECT TabelB.TIMESTAMP, TabelB.ANTAL
FROM TabelB
UNION
SELECT TabelC.TIMESTAMP, TabelC.ANTAL
FROM TabelC;
Avatar billede jensen363 Forsker
02. september 2004 - 15:59 #4
Og din summering/gruppering således :

SELECT UNION.TIMESTAMP, Sum(UNION.ANTAL) AS SumOfANTAL
FROM [UNION]
GROUP BY UNION.TIMESTAMP;
Avatar billede -chriz- Nybegynder
02. september 2004 - 16:00 #5
og hvordan vil du så mene jeg skal samle dataene sammen - med Access' Sum() ? og så en Group By TabelA.TIMESTAMP (men så kun efter datoen, og ikke tidspunktet)?
Avatar billede -chriz- Nybegynder
02. september 2004 - 16:02 #6
hehe... okay... det lyder jo logisk.. jeg takker og du må gerne smide et svar, hvis du har brug for nogle points! Ellers skal jeg nok vende frygteligt tilbage, hvis det ikke virker ;)
Avatar billede jensen363 Forsker
02. september 2004 - 16:03 #7
Svar ...
Avatar billede -chriz- Nybegynder
03. september 2004 - 11:32 #8
det ser ud som om... at det ikke lige gik så nemt igen... her er hvad jeg har fået bikset sammen so far:

SELECT Format(Table1.TIME_STAMP, "yyyy-mm-dd") AS Dato, Table1.MAENGDE As SumMaengde FROM Table1
UNION
SELECT Format(Table2.TIME_STAMP, "yyyy-mm-dd") AS Dato, Table2.MAENGDE As SumMaengde FROM Table2
UNION
SELECT Format(Table3.TIME_STAMP, "yyyy-mm-dd") AS Dato, Table3.MAENGDE As SumMaengde FROM Table3
UNION

.. så nu mangler jeg kun at få summeret tallene pr. dato... desværre kan jeg ikke bruge Sum() funktionen til TableX.MAENGDE ...!

Nogen der gider hjælpe med det..?

/Christian
Avatar billede -chriz- Nybegynder
03. september 2004 - 12:24 #9
Skal jeg oprette et nyt spørgsmål til dette? Jeg skal selvfølgelig nok belønne svareren med nogle points...

/Christian
Avatar billede -chriz- Nybegynder
03. september 2004 - 13:00 #10
Fortsat i denne tråd:
http://www.eksperten.dk/spm/535940
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester