Toon posts:

[ACCESS] Kolommen converteren naar rijen

Pagina: 1
Acties:
  • 343 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een tabel met records met meerdere velden;

Product, A, B, C, D, E, F, G, H, I ,J etc.

de velden a t/m J staan daarbij voor waarden.

Nu moeten in deze tabel de records gesommeerd worden, en product vervalt.

je krijgt dan Som A, Som B, Som C, Som D etc.

dit is dus een recordset met een record en meerdere velden. Nu moet dit ene record getransformeerd worden waarbij ieder veld een record wordt; (dit tbv een pareto van de waarden)

Naam | Waarde
Som A | 3434
Som B | 324324
Som C | 3443
Som D | 1357
Som E | 233546
etc.


Hoe kan ik dit zo eenvoudig mogelijk doen??

De huidige manier is in VBA mbv DAO een recordset aanmaken, en deze record voor record doorlopen, en dan iedere label en waarde aanmaken als nieuw record.

Hoe kan ik dit doen mbv een matrix berekening oid (crosstab???)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Dit soort 'omdraaiingen' zijn meer een presentatie probleem en moeten dus ook in het presentatie gedeelte van je applicatie opgelost worden. Niet in de database zelf.

Trouwens.. Kolomnamen als a t/m j rieken naar een erg fout database model of slechte naamgeving van de kolommen...

[ Voor 27% gewijzigd door Janoz op 25-02-2003 14:19 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Hmmmm...... ik ruik niks.... :)

Je hebt gelijk dat het niet gebruikelijk is om het op deze manier te doen. Normaal zou je een tabel met de verschillende parameters hebben, en dan een tabel met parameterswaarden. Maar in dit geval is hiervoor gekozen tbv een aantal validaties en de logica van de gegevensbundeling die op deze manier verkregen wordt.

beetje vaag, maar geloof me, het zit wel goed! 8)

Maarre, geen idee hoe ik deze transformatie simpel voor elkaar kan krijgen??

De manier die ik nu gebruik is zeer omslachtig, en vereist een form en specifieke programmering voor iedere transformatie. :(

  • AceRimmer
  • Registratie: Maart 2001
  • Laatst online: 11:36

AceRimmer

What a guy...

Je zou het met de volgende UNION query kunnen doen. Hardcoded, niet echt netjes en wellicht traag, maar... het werkt wel:

code:
1
2
3
4
5
6
SELECT "Som A" As Naam, Sum(tbl.a) AS Waarde FROM tbl
UNION
SELECT "Som B", Sum(tbl.b) FROM tbl
UNION
SELECT "Som C", Sum(tbl.c) FROM tbl
...

Smoke me a kipper, I'll be back for breakfast