SQLserver query: van meerdere records naar 1 record

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SideShow
  • Registratie: Maart 2004
  • Laatst online: 16-06 15:55

SideShow

Administrator

Topicstarter
Hallo

Algemeen:

Ik ben bezig met het maken van een kleine API met betrekking tot een aangekocht statistiekpakket. (Meer bepaald SPSS Dimensions). Ik pluk informatie uit 1 tabel en giet dit om tot objecten in een webapplicatie.

Situatie:

De tabel is nogal van bedenkelijke makelij en is een opeenvolging van properties. Het niveau van een eigenschap (of eigenschap van eigenschap, of eig van eig van eig, .....) wordt bepaald door ID en PARENT_ID maar staat in de tabel zelf op gelijk niveau.

Voorbeeld:

1 belangrijk_ding NULL
2 eigenschap_van_belangrijk_ding 1
3 nog_een_eigenschap_van_belangrijk_ding 1
4 belangrijk_ding_2 NULL
...

Probleem:

Volgens mijn beperkte kennis, kan je hier iets mee doen, door de tabel te joinen met zichzelf, om uiteindelijk zoiets uit te komen:

belangrijk_ding eigenschap_van_belangrijk_ding
belangrijk_ding nog_een_eigenschap_van_belangrijk_ding
belangrijk_ding2 ...

Constant zitten joinen metzichzlef is volgens mij ook weer bedenkelijk, plus, zou ik liever het volgende bereiken (horizontaal gerichte data terwijl daarnet verticale):

belangrijk_ding eigenschap_van_belangrijk_ding nog_een_eigenschap_van_belangrijk_ding
belangrijk_ding2 ...

Iemand die hierover iets kwijt kan?

Acties:
  • 0 Henk 'm!

  • Redshark
  • Registratie: Mei 2002
  • Laatst online: 12:06
Ken je het stukje van crisp?

Crisp's blog: Formatting a multi-level menu using only one query

Volgens mij is dat wat jij wilt toch?

Acties:
  • 0 Henk 'm!

  • SideShow
  • Registratie: Maart 2004
  • Laatst online: 16-06 15:55

SideShow

Administrator

Topicstarter
Interessant

Doch wil ik liever de data correct geformatteerd aanleveren aan de webservice en wil het dus kunnen in SQL

Ik zal eens kijken als ik de logica kan omvormen en gebruiken in mijn stored procedure

Bedankt

Acties:
  • 0 Henk 'm!

  • Jan_V
  • Registratie: Maart 2002
  • Laatst online: 10:45
Misschien is de Cross Apply van MS SQL een optie voor je.
Ik heb het een en ander uitgeschreven hier: http://jan-v.nl/ViewPost....a4-de11-b37c-0030488ab70f

Is eigenlijk wel misbruik maken van de functionaliteit, maar ja, het werkt.

Battle.net - Jandev#2601 / XBOX: VriesDeJ


Acties:
  • 0 Henk 'm!

  • SideShow
  • Registratie: Maart 2004
  • Laatst online: 16-06 15:55

SideShow

Administrator

Topicstarter
Hallo

Bedankt, maar ik heb dit ondertussen kunnen oplossen aan de hand van PIVOT en 2 lijntjes code

Prachtig :-)