Avatar billede jensen2005 Nybegynder
03. juni 2007 - 20:39 Der er 2 kommentarer og
2 løsninger

Hjælp til SQL query

Hej eksperter

Lige et spørgsmål indenfor sql.

Jeg har to tabeller i en MS SQL database.

Eksempel med data:

Tabel1 (Vintyper)

Id      Kategori

12      Rødvin
2        Hvidvin
32      Rose

Tabel2 (Vinnavne)

ID      Navn              horertil

1        Franz 2007          12
99      Prins Henry        12
33      Borgune fiesta      2
18      Rose Mary          32
99      White river          2



Jeg har i dag en sql sætning som trækker data ud på følgende måde:

Rødvin
Franz 2007         

Rødvin
Prins Henry

Hvidvin
Borgune fiesta

Hvidvin
White river

Rose
Rose Mary

I dag bruger jeg så en datareader til manuelt at sortere i dataen så der ikke står Rødvin og Hvidvin to gange.


Mit spørgsmål er kan man ikke ved hjælp af sql sortere så man får følgende udskrift:

Rødvin
Franz 2007         
Prins Henry

Hvidvin
Borgune fiesta
White river
     
Rose
Rose Mary


Jeg ved at der i My sql findes noget som hedder GROUP_CONCAT(). Men findes der en måde man kan gøre det jeg har beskrevet i MS SQL.

Mvh Jensen2005
Avatar billede 0xffff Nybegynder
03. juni 2007 - 22:52 #1
Jeg har ikke selv prøvet at lave det, men jeg fandt lige den her artikel som måske kan hjælpe dig videre.


http://www.stevenmapes.com/index.php?/archives/23-Recreating-MySQL-GROUP_CONCAT-In-MSSQL-Cross-Tab-Query.html
Avatar billede jtbroad Nybegynder
04. juni 2007 - 10:26 #2
Hvis det eneste du behøver er en list virker følgende:

Declare @type int
Declare @navn varchar(50)

Declare cur_cat cursor for select * from vintyper

Open cur_cat
Fetch next from cur_cat into @type,@navn

while @@fetch_status = 0
Begin
    Print @navn

Declare cur_vin cursor for select navn from vinnavne where horertil = @type

open cur_vin
Fetch next from cur_vin into @navn
While @@fetch_status = 0
Begin
    Print '  ' + @navn
    Fetch next from cur_vin into @navn
End
Close cur_vin
deallocate cur_vin

Fetch next from cur_cat into @type,@navn
end
Close cur_cat
Deallocate cur_cat
Avatar billede jensen2005 Nybegynder
04. juni 2007 - 16:21 #3
HEJ

Tak for de hurtige svar. Pyha det lyder lidt indviklet.

0xffff: Gider du ikke også at ligge et svar ind.

Mvh Jensen2005
Avatar billede 0xffff Nybegynder
04. juni 2007 - 20:35 #4
jo da, svar kommer her :)
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