[SQL] Oracle SQL meerdere kolommen combineren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het volgende probleem

Database Oracle SQL 10.2

Om een rapportageontwerp te realiseren wil ik graag een query waarmee ik een aantal resultaten van verschillende query's in één tabel kan combineren. Deze wil ik ook groeperen op MAAND.

Datum1 (DATE)
Datum2 (DATE)
Datum3 (DATE)
Allemaal velden uit dezelfde tabel.

Gewenst resultaat:

Lijst met de Kolommen
Maand, count( Datum1), count(datum2), count(datum3)


Maand Datum1 Datum2 Datum3
Januari 110 120 125
februari 115 220 200

Met welke Oracle SQL methoden kan ik het gewenste resultaat bereiken?
Momenteel kan ik per datum wel het gewenste resultaat krijgen door middel van onderstaande query, maar ik heb na veel zoeken geen idee meer hoe ik de 3 queries kan combineren.

SELECT to_char(DATUM1, 'month') AS Maand, count(DATUM1)
FROM Tabel1
GROUP BY to_char(DATUM1, 'month')
ORDER BY to_date(to_char(DATUM1, 'month'), 'month')

Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 11-09 13:16
Ik denk dat het antwoord PIVOT is. ;)

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Jaap-Jan schreef op woensdag 02 mei 2012 @ 22:38:
Ik denk dat het antwoord PIVOT is. ;)
Dat, of presentatielaag :P
En gezien TS Oracle 10.2 gebruikt wordt 't het laatste vrees ik:
PIVOT is a SQL operation, introduced in Oracle 11g
Prior to Oracle Database 11g, you would do that via some sort of a decode function
:Y)

Beide links bevatten overigens wel alternatieven (die een stuk omslachtiger zijn en waarschijnlijk niet eens voldoen aan de requirements van TS).

[ Voor 68% gewijzigd door RobIII op 02-05-2012 23:01 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
Volgens mij is PIVOT pas met Oracle 11 beschikbaar.
Betekent, dat je tot die tijd iets creatiefs moet doen. Voorbeeldje op het OTN forum.

* wat ROBIII zegt dus. moet wat sneller typen *

[ Voor 13% gewijzigd door PaulZ op 02-05-2012 23:16 ]

Vlinders moet je volgen, niet vangen...