Avatar billede clni01ab Nybegynder
16. oktober 2003 - 00:24 Der er 9 kommentarer og
1 løsning

Krydstabuleret forespørgsel

Jeg har oprettet en tabel med nøgle, aktienavn, dato og dagskurs som felt.
Problem: Nu var planen så at jeg ville køre en krydstabuleret forespørgsel således at jeg har aktienavn i kolonner og dato i rækker.

Tabel eksempel:

1  Novo      13-10-03  xxx
2  Novo      12-10-03  xxx
3  Lundbeck  13-10-03  xxx
4  Lundbeck  12-10-03  xxx
osv. ialt 1 mio rækker

Resultatet af forespørgslen havde jeg så forestillet mig skulle se således ud:

          Novo    Lundbeck
13-10-03  xxx      xxx
12-10-03  xxx      xxx
osv.

Hvem kan hjælpe mig med dette problem.
Avatar billede henrik13 Nybegynder
16. oktober 2003 - 00:30 #1
Access har svært ved at lave noget om ved over 20.000 rækker. Så det tror jeg ikke du kan få til at kører.  :o)
Avatar billede henrik13 Nybegynder
16. oktober 2003 - 00:34 #2
Hvad med at lave en tabeloprettelse forespørgsel , Hvor du har Lundbæk i en tabel, og novo i den anden.
Avatar billede mugs Novice
16. oktober 2003 - 06:04 #3
Har lige lavet en Krydstabulering på en tabel med 392216 poster uden problemer.

clni01ab -> Brug guiden Krydstabulering og vælg Dato som Rækkeoverskrift, Aktioenavn som Kolonneoverskrift.
Kan sende min testdb blot læg din e-mail
Avatar billede krasmussen Praktikant
16. oktober 2003 - 07:53 #4
Måske kan din SQL i forespørgslen se sådan ud:
select 1.aktienavn, 2.aktienavn, 1.dato, 1.kurs
from table_a 1, table_a 2
where 1.ID = 2.ID
  and 1.aktienavn <> 2.aktienavn
group by dato
order by .......

Jeg er ikke 100% sikker på om det er en korrekt inner join i MS SQL
Avatar billede terry Ekspert
16. oktober 2003 - 08:23 #5
TRANSFORM Avg(tbCrossTab.antal) AS AvgOfantal
SELECT tbCrossTab.Dato, Avg(tbCrossTab.antal) AS [Total Of antal]
FROM tbCrossTab
GROUP BY tbCrossTab.Dato
PIVOT tbCrossTab.Navn;
Avatar billede terry Ekspert
16. oktober 2003 - 08:23 #6
and without average

TRANSFORM Avg(tbCrossTab.antal) AS AvgOfantal
SELECT tbCrossTab.Dato
FROM tbCrossTab
GROUP BY tbCrossTab.Dato
PIVOT tbCrossTab.Navn;
Avatar billede terry Ekspert
16. oktober 2003 - 08:26 #7
sum for each day for each company
TRANSFORM Sum(tbCrossTab.antal) AS SumOfantal
SELECT tbCrossTab.Dato
FROM tbCrossTab
GROUP BY tbCrossTab.Dato
PIVOT tbCrossTab.Navn;
Avatar billede krasmussen Praktikant
16. oktober 2003 - 14:21 #8
=>> Terry, you glad took over. Your solution is a lot more elegant...
Avatar billede clni01ab Nybegynder
16. oktober 2003 - 14:24 #9
Thank you it works!
Avatar billede mugs Novice
16. oktober 2003 - 14:26 #10
So do mine.
Måske henrik13 kan give noget dokumentation for, at Access har svært ved at håndtere mere end 20000 rækker?
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