23. marts 2005 - 09:47
Der er
9 kommentarer og 2 løsninger
group by (igen)
Hej hvordan kan jeg lave en group by fx. country fx. select countryid from country group by country hvor countryid skal returnere ALLE de id'er som er blevet grupperes. (komma separeret) fx. 1,5,8,9
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
23. marts 2005 - 10:39
#1
En SELECT kan ikke returnere et variabel antal kolonner. Jeg tror at det er: SELECT contryid,id FROM country ORDER BY countryid,id du leder efter, hvor din applikation så "skriver vandret" så længe countryid er det samme og laver et linieskift når countryid skifter
23. marts 2005 - 10:54
#2
Hmm det var måske forkert at kalde det countryid. skal nok være ordreid. Så den kan returnere alle ordreid for et given land. Det er mere så jeg slipper for at lave en sql og køre en loop for at samle alle id'er først. og så køre den i min næste sql. select * from tabel where id in(1,5,8,9)
23. marts 2005 - 11:01
#3
Du kan godt lave det i én query, som arne_v siger, men så skal du selv uden for i applikationen spotte, hvornår der skiftes country. Altså have et ydre loop for hvert nyt countryid og et indre loop for hver ordreid i det pågældende country. Og så skal du netop bare vælge dem alle sammen og først sortere efter country og derefter ordreid. Men hvis du siger lidt mere om dit tilfælde og måske kommer med nogle eksempler, kan du få nogle yderligere tips :) -- Morten Barklund
23. marts 2005 - 11:16
#4
jeg har to tabeller en med alle users. userid||navn||country så har jeg en tabel med alle ordre ordreid||beløb||userid Så skal jeg opsummere alle ordre fra Danmark Så jeg laver select userid from users do while userid = userid & rs("userid") & "," loop select * from ordre where userid in (" & userid & ") altså noget lign. Skal bare være mere simpelt kan i følge mig... hehe nu hvor jeg var ved at beskrive det slog det mig lige at man bare kan joine tabellerne :-) select * from user, ordre where user.userid=ordre.userid and user.country = 'Denmark' Er det ikke bedre :-) *flovt*
23. marts 2005 - 11:18
#5
meget bedre
23. marts 2005 - 11:24
#6
takker for jeres hjælp.. uden jer ville jeg ikke kunne tænke klart :-) Altid godt at beskrive problemerne for nogle andre. Hvis i giver et svar kan i få nogle point hver for at clear min hjerne...
23. marts 2005 - 11:26
#7
:-)
23. marts 2005 - 11:26
#8
og svar
23. marts 2005 - 11:27
#9
Og jo, jeg kunne heller ikke lige se, hvor grouping kom ind i billedet :)
23. marts 2005 - 11:30
#10
Og tak for point :)
23. marts 2005 - 11:31
#11
selv tak drenge
Computerworld tilbyder specialiserede kurser i database-management