Avatar billede trine_h Nybegynder
19. marts 2003 - 09:25 Der er 5 kommentarer og
1 løsning

sql spørgsmål

Jeg har følgende "one to many" query :
SELECT * FROM sales.Customers C INNER JOIN sales.Orders O
ON C.customerID = O.customerID;

Problemet er at for hver order data udskrives customer data - Hvordan laver jeg en query der kun udskriver customer data én gang og efterfølgende alle ordrer der knytter sig til customer? eks.:
Customernavn1 customerid1
ordernavn1 orderid1
ordernavn2 orderid2
ordernavn3 orderid3
Customernavn2 customerid2
ordernavn1 orderid1
ordernavn2 orderid2
ordernavn3 orderid3
Avatar billede dk_akj Nybegynder
19. marts 2003 - 09:37 #1
Jeg plejer at lave sådan noget ved først at loope gennem kunderne. For hver kunde laver jeg så en ny select ("select * from orders where customerid = " & id)
derefter udskriver jeg ordrer og fortsætter til næste kunde.

//akj
Avatar billede trine_h Nybegynder
19. marts 2003 - 10:06 #2
lyder ok - send lige et svar ;)
Avatar billede dk_akj Nybegynder
19. marts 2003 - 10:06 #3
Oki
Avatar billede trine_h Nybegynder
19. marts 2003 - 10:28 #4
hvordan er det lige at jeg åbner en ny connection mens en eksisterende allerede er åben? Det bliver jo nødvendigt for at lave det på den måde som du viste!
Avatar billede dk_akj Nybegynder
19. marts 2003 - 10:34 #5
Nej det er det ikke. Du skal bare bruge 2 recordsets

set rs_cust = conn.execute ("select distinct c.id, c.name ,c.osv...  from customers c, orders where orders.customerid = customers.id") ' orders er sat på for kun at få kunder ud der har en ordre

do while not rs_cust.eof
  ' udskriv kunde data....
 
  ' opret recordset med kundens ordrer
  set rs_orders = conn.execute ("select * from orders where customer_id = " & rs_cust("id"))
  do while not rs_orders.eof
    ' udskriv ordredata....
    rs_orders.movenext
  loop
  rs_cust.movenext
loop

//akj
Avatar billede trine_h Nybegynder
19. marts 2003 - 10:35 #6
super!
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