19. marts 2003 - 09:25Der 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
Med version 7 af TeamShare tager Lector næste skridt og bygger en platform for AI-agenter, der i højere grad kan følge medarbejderen gennem hele arbejdsprocessen.
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.
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!
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
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.