Avatar billede speder Nybegynder
12. oktober 2001 - 10:59 Der er 6 kommentarer og
1 løsning

Vende tabel

Hej

Jeg har følgende tabel

COL1...COL2...COL3...COL4
1.......1......1......1
1.......1......2......0
1.......1......3......0
2.......2......1......1
2.......2......2......1
2.......2......3......0
3.......2......1......0
3.......2......2......1
3.......2......3......2

Jeg vil gerne have samlet alle Records med samme værdi i Col1 til ÉN record (med flere kolonner 3 *3), altså:


Col1...Col2...Col3...Col4...Col5...Col6...Col7...Col8

1.......1......1......1......2......0......3......0
2.......2......1......1......2......1......3......0
3.......2......1......0......2......1......3......2

Col2 (i den nye tabel) overtager bare værdien fra Col2 (i den gamle tabel). Col3 (i den nye tabel) indeholder værdien fra Col3 (i den gamle tabel). Col4 (i den nye tabel) indeholder Col3 (record2) fra den gamle tabel, o.s.v.

Giver det mening?

M.v.h.

Søren
12. oktober 2001 - 11:06 #1
Hej Søren,

Det giver ikke rigtig nogen mening at gøre det præcis på den måde, du beskriver! Du mister jo derved sammenhængen med hver record.
Record 3 i øverste tabel er jo ikke længere at finde/udlede af tabel 2?

Eller har jeg misforstået dig?
Avatar billede speder Nybegynder
12. oktober 2001 - 11:11 #2
Jeg skal lige have formuleret det bedre. Vender tilbage om lidt.
Avatar billede speder Nybegynder
12. oktober 2001 - 11:20 #3
Jeg har følgende tabel

ID...SEX...TIME...HIT
1.....1.....1......1
1.....1.....2......0
1.....1.....3......0
2.....2.....1......1
2.....2.....2......1
2.....2.....3......0
3.....2.....1......0
3.....2.....2......1
3.....2.....3......1

ID = Henviser til personid (benærk, at hver person har flere records).
SEX = Henviser til denne persons køn.
TIME = Henviser til tidspunkter på dagen (1 = morgen, 2 = middag, 3 = aften).
HIT = Henviser til om personen har besøgt mit website på det givne tidspunkt (0 = nej, 1 = ja).

Man kan altså f.eks. sige, at personid = 2 har besøgt mit website på tidspunkterne 1 & 2, o.s.v.

Nu vil jeg - af analysemæssigt hensyn - gerne samle personerne, så hver record udgør en unik person. Den nye struktur er som følger.

ID...SEX...TIME1...TIME2...TIME3
1.....1.....1.......0.......0
2.....2.....1.......1.......0
3.....2.....0.......1.......1

Fra den nye tabel kan man f.eks. se, at person 3 har besøgt mit website i tidspunkterne 2 & 3.

Giver det mening nu? Jeg hæver points lidt :-)

M.v.h.

Søren
12. oktober 2001 - 11:29 #4
Hvad med sådan?:

TRANSFORM Sum(Hits.Hit) AS SumOfHit
SELECT Hits.ID, Hits.SEX
FROM Hits
GROUP BY Hits.ID, Hits.SEX
PIVOT Hits.Time;

Udskift Hits med navnet på din tabel.
Forespørgslen summere antallet af hits på hver tid.

/Thomas
12. oktober 2001 - 11:38 #5
TRANSFORM Sum(Hit) AS SumOfHit
SELECT ID, SEX
FROM Hits
GROUP BY ID, SEX
PIVOT Time;

(Lidt forenklet)
Avatar billede speder Nybegynder
12. oktober 2001 - 11:54 #6
Hej

Tusind tak for inspiration - jeg fik det til at virke med udgangspunkt i dit løsningsforslag.

M.v.h.

Søren
12. oktober 2001 - 11:56 #7
Der var en del variationsmuligheder, så jeg tog bare den, som jeg fandt mest indlysende. Men det var godt, at du selv kom videre :o)
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