Avatar billede nat Nybegynder
09. december 2009 - 14:16 Der er 6 kommentarer og
2 løsninger

flere rækker samlet i en

Jeg har en query der returnerer en masse rækker, men den ene kolonne vil jeg gerne samle i en.

Jeg har pt.: select ordId, Custno, Weekno from table1

som giver:

OrdId---Custno---Weekno
1-------12-------48
1-------12-------49
1-------12-------50
2-------12-------49
2-------12-------50
3-------20-------50

Jeg vil gerne, at resultatet kommer til at se sådan her ud:

OrdId---Custno---Weekno
1-------12-------48, 49, 50
2-------12-------49, 50
3-------20-------50

Er det muligt?
Avatar billede arne_v Ekspert
09. december 2009 - 14:26 #1
Kan du ikke lave den opsamling i applikationen?
Avatar billede keysersoze Guru
09. december 2009 - 15:07 #2
Det mest naturlige ville være en opsamling i applikationen - alternativt skal du lave en distinct på din sql og så lave enten en subselect eller en function til at concatinere weekno til at danne din custom kolonne.
Avatar billede nat Nybegynder
10. december 2009 - 09:39 #3
Kan du give et eksempel på en sådan sql?
Avatar billede nat Nybegynder
10. december 2009 - 10:02 #4
eller alternativt, hvordan gør jeg det i applikationen (web) - kræver vel at jeg skifter kategori for dette spørgsmål...

Men det er c#.net og et dataview der bliver vist i et datagrid.
Avatar billede nat Nybegynder
10. december 2009 - 13:11 #5
Jeg rykker mit spørgsmål til anden gruppe. Vil I dele point?
Avatar billede arne_v Ekspert
10. december 2009 - 18:54 #6
Hvis dine ting er adskilt paent i lag, saa lver du en helt simpel query og laeser ind i en objekt model hvor flere raekker bliver til et objekt. GUI bruger saa den objekt model.

Deling lyder helt fint. Her er svar fra mig.
Avatar billede keysersoze Guru
10. december 2009 - 19:20 #7
mine evner inden for Oracle SQL rækker desværre ikke til det - jeg vil også mene at det mest af alt hører applikationen og ikke databasen til. Hvordan det præcist kan gøres afhænger i høj grad af hvordan du arbejder med .net men arne_v-løsningen lyder som den mest optimale.
Avatar billede arne_v Ekspert
10. december 2009 - 19:38 #8
Hvis man absolut ville lave det i SQL saa kunne man bruge:

SELECT OrdId,Custno,ConcatAllWeeknoForOrdId(OrdId) FROM tabel

og saa kode en userdefineret funktion ConcatAllWeeknoForOrdId (og Oracle tillader at man laver userdefinerede funktioner i Java hvilket nok er mere oplagt end PL/SQL til dette formaal).

Men jeg mener altsaa at det er noget som hoerer hjemme i et business logic lag og ikke i databasen.
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
Computerworld tilbyder specialiserede kurser i database-management

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