Avatar billede Slettet bruger
11. december 2001 - 10:25 Der er 6 kommentarer og
2 løsninger

GROUP BY?!

Jeg har et simpelt spørgsmål. Jeg er netop rendt over GROUP BY - clausen i SQL. Jeg forstår at den gruperer records med enslydende værdier i et givent felt. Mit spørgsmål er så: Hvordan \"vælger\" man gruppe?

Ex. (pseudo kode):
- Åben recordset hvor vare_nr = 1
- Udskriv alle records
- Åben recordset hvor vare_nr = 2
- Udskriv alle records
- etc.
Sådan kunne man udskrive forskellige grupper af produkter, men hvis GROUP BY fungerer som jeg forstår det - burde det være lettere. Men hvordan udskriver jeg den gruppe med vare_nr = 1? osv. Help :)

Avatar billede bobbedude Nybegynder
11. december 2001 - 10:29 #1
Select from where vare_nr = 1
Avatar billede bobbedude Nybegynder
11. december 2001 - 10:32 #2
<%
Set rs = Connect.Execute(\"SELECT * FROM vare Where vare_nr = 1 \")

if not rs.EOF then
do until rs.EOF
%>
vare nummer = <=%rs(\"id\")%><br>
<%
rs5.MoveNext
Loop
end if
%>
Avatar billede bobbedude Nybegynder
11. december 2001 - 10:33 #3
ups rs5.MoveNext skal være rs.MoveNext

Avatar billede Slettet bruger
11. december 2001 - 10:45 #4
Ja den har jeg fanget :) Men det besvarer jo ikke mit spørgsmål - hvordan fungerer \"GROUP BY\"?
Avatar billede bobbedude Nybegynder
11. december 2001 - 11:01 #5
Avatar billede thb Nybegynder
11. december 2001 - 12:30 #6
Det du kan gøre er at du åbner et din tabel og laver en group by vare_nr og så udskriver alle records...

Altså:

<%
SQL = \"Select * from vare group by vare_nr order by id asc\"
Set vare = conn.Execute(SQL)

If NOT vare.bof OR vare.eof Then
  Do while not vare.eof
    response.write vare(\"navn\")
  Loop
else
  response.write \"Der er ikke nogle vare...\"
End if
%>

Håber at det hjalp, eller må du lige skrive hvad du ellers vil vide...

Thomas
Avatar billede Slettet bruger
11. december 2001 - 21:00 #7
thb > Det er jeg klar over. Men er GROUP-BY-clausen bare et sorteringsværktøj?! Man må da kunne udskrive en gruppe ad gangen. Hvis man nu har Gruperet ved vare_nr. Lad os sige at vare_nr kan være 1 2 og 3. Så burde man vel kunne udskrive alle records med vare_nr = 1, 2 osv...?
En dokumentopbygning kunne ex. være..:

- Åben RS med GROUP BY-clause
- HTML-koder
- Udskriv alle med vare_nr = 1
- HTML-koder
- Udskriv alle med vare_nr = 2
- etc.

Uden man nødvendigvis skal åbne et nyt recordset/ekserkvere en ny SQL hver gang?
Avatar billede thb Nybegynder
11. december 2001 - 23:15 #8
Det var et godt spørgsmål...

Kunne man ikke køre flere loops hvor man udskrev de forskellige grupper en efter en...???

altså:

rs.movefirst
do while not rs.eof
if vare_nr = \"1\" Then
  response.write re(\"navn\") & \"<br>\"
endif
rs.movenext
Loop

og så køre det en gang til bare med if vare_nr = \"2\" then...

Thomas
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
Kurser inden for grundlæggende programmering

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