Avatar billede l_otto Nybegynder
21. oktober 2004 - 11:46 Der er 19 kommentarer og
1 løsning

den svære udskriv antal

Hej Med jer..

<%
strSQL1 = "SELECT * FROM orders Where status='complete' "


set rs1 = conn.execute(strsql1)

Do
 

Response.write "<table>"
Response.write "<tr><td bgcolor='#f1ede7'><b>klub</td><td  bgcolor='#f1ede7'><b>Fornavn</td><td  bgcolor='#f1ede7'><b>Efternavn</td><td  bgcolor='#f1ede7'><b>E.mail</td><td  bgcolor='#f1ede7'><b>Total</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><tr>"
Do
Response.write "<tr><td bgcolor='#FFF5D7'>"
  ' Personens navn

strNavn = rs1("fFirma")
  ' lav et link til person.asp med Id-værdien i URL
  strLink = "<b><a href='faktura.asp?id=" & rs1("orderID") & "'><FONT SIZE='1' COLOR='#000000'>" & strNavn & "</a>"

  Response.Write strLink
 
 
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("fName")
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("lName")
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write "<a href=""mailto:" & rs1("email") & """>" & rs1("email") & "</a>"

  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("Total")& ".00"
  VAR = VAR + rs1("Total")
 

 

 

 
 

strSQL2 = "SELECT orders.orderid, itemsordered.orderid, itemsordered.quantity, itemsordered.productid, products.productid, products.productname FROM orders INNER JOIN (itemsordered INNER JOIN products ON itemsordered.productid = products.productid) ON itemsordered.orderid = orders.orderid  WHERE itemsordered.orderid = " & rs1("orderid")

set rs2 = conn.execute(strsql2)
Do
    Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs2("productname")

  rs2.movenext
  Loop while not rs2.EOF
rs1.movenext
Loop while not rs1.EOF
Response.write "</td></tr>"
Response.Write "</table>"






  response.write "<BR><BR><b>TOTAL OMSÆTNING: " & VAR * 0.8& ".00  ex.moms<BR><BR>"


Loop While Not rs1.EOF
Conn.Close
Set Conn = Nothing
%>

viser mine bestillinger :-) nu er det sådan at i den tabel "itemsordered" er der tre felter:

productid
orderid
quantity

så har vi tabel: "products":

productID  (der er 27 produkter)
productName

de henviser til hinanden.


Nu vil jeg gerne have den skal udskrive i bunden hvor mange at hver produkt der er bestilt.

antal    produkt
10        sko
2          strømper



osv... :-) hjælp..
Avatar billede hiks Nybegynder
21. oktober 2004 - 19:56 #1
hej :o)

Sådan her skulle jeg mene:

<%

strSQL3 = "SELECT SUM(Quantity) As Antal, ProductName " & _
          "FROM itemsordered INNER JOIN products ON itemsordered.productid = products.productid " & _
          "GROUP BY products.productid"
set rs3 = conn.execute(strSQL3)

If rs3.eof = False then
      While rs3.eof = false
            Response.write rs3("productname") & " " & rs3("antal")
            rs3.movenext
      Wend
Else
      Response.Write "Ingen solgte varer!"
End If

%>

/hiks
Avatar billede l_otto Nybegynder
22. oktober 2004 - 19:08 #2
<%
strSQL1 = "SELECT * FROM orders Where status='complete' "


set rs1 = conn.execute(strsql1)

Do
 

Response.write "<table>"
Response.write "<tr><td bgcolor='#f1ede7'><b>klub</td><td  bgcolor='#f1ede7'><b>Fornavn</td><td  bgcolor='#f1ede7'><b>Efternavn</td><td  bgcolor='#f1ede7'><b>E.mail</td><td  bgcolor='#f1ede7'><b>Total</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><tr>"
Do
Response.write "<tr><td bgcolor='#FFF5D7'>"
  ' Personens navn

strNavn = rs1("fFirma")
  ' lav et link til person.asp med Id-værdien i URL
  strLink = "<b><a href='faktura.asp?id=" & rs1("orderID") & "'><FONT SIZE='1' COLOR='#000000'>" & strNavn & "</a>"

  Response.Write strLink
 
 
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("fName")
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("lName")
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write "<a href=""mailto:" & rs1("email") & """>" & rs1("email") & "</a>"

  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("Total")& ".00"
  VAR = VAR + rs1("Total")
 

 

 

 
 

strSQL2 = "SELECT orders.orderid, itemsordered.orderid, itemsordered.quantity, itemsordered.productid, products.productid, products.productname FROM orders INNER JOIN (itemsordered INNER JOIN products ON itemsordered.productid = products.productid) ON itemsordered.orderid = orders.orderid  WHERE itemsordered.orderid = " & rs1("orderid")

set rs2 = conn.execute(strsql2)
Do
    Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs2("productname")

  rs2.movenext
  Loop while not rs2.EOF
rs1.movenext
Loop while not rs1.EOF
Response.write "</td></tr>"
Response.Write "</table>"




strSQL3 = "SELECT SUM(Quantity) As Antal, ProductName " & _
          "FROM itemsordered INNER JOIN products ON itemsordered.productid = products.productid " & _
          "GROUP BY products.productid"
set rs3 = conn.execute(strSQL3)

If rs3.eof = False then
      While rs3.eof = false
            Response.write rs3("ProductName") & " " & rs3("antal")
            rs3.movenext
      Wend
Else
      Response.Write "Ingen solgte varer!"
End If



  response.write "<BR><BR><b>TOTAL OMSÆTNING: " & VAR * 0.8& ".00  ex.moms<BR><BR>"


Loop While Not rs1.EOF
Conn.Close
Set Conn = Nothing


%>
Avatar billede l_otto Nybegynder
22. oktober 2004 - 19:09 #3
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'ProductName' as part of an aggregate function.

/oversigt.asp, line 112


linie 112 = set rs3 = conn.execute(strSQL3)
Avatar billede l_otto Nybegynder
22. oktober 2004 - 19:14 #4
productname ligger i "products" ikke "itemsordered " derfor kan den ikke finde ud af det :-)
Avatar billede hiks Nybegynder
23. oktober 2004 - 12:44 #5
hej

det er fordi jeg har glemt at det er productname og id der skal med i group by. så din sql skal se således ud:

strSQL3 = "SELECT SUM(Quantity) As Antal, products.ProductID, products.ProductName " & _
          "FROM itemsordered INNER JOIN products ON itemsordered.productid = products.productid " & _
          "GROUP BY products.productid, products.ProductName"

mvh hiks
Avatar billede l_otto Nybegynder
23. oktober 2004 - 12:57 #6
der var den sgu.. takker :-)

nu vil jeg gerne lave et sum men det er også lidt indviklet.. fordi..

productid
23 = 100 pk strømper
24 = 250 pk strømper

men jeg vil gerne have en der siger :

strømper              sko
5236 pakker            510 par

hvordan gør jeg det ?
Avatar billede hiks Nybegynder
23. oktober 2004 - 13:04 #7
har du nogen former for varegrupper i det system der?

det virker som om at det er varegruppernes resultater du gerne vil se. Du kan altid nøjes med at gruppere på produktnavnet således at alle dem med samme navn bliver slået sammen - ellers bør du overveje at indarbejde en ekstra tabel der holder styr på dine grupperinger. Det kan selvfølgelig godt "hardcodes" men det bliver ikke kønt.

Jeg holder weekend til imorgen - så svarer først der. Go weekend!

/hiks
Avatar billede l_otto Nybegynder
23. oktober 2004 - 13:29 #8
jeg vil gerne have dem :

  "GROUP BY products.productid, products.ProductName order by productid"

men det vil den ikke :

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] The specified field 'productid' could refer to more than one table listed in the FROM clause of your SQL statement.

/oversigt.asp, line 113
Avatar billede l_otto Nybegynder
23. oktober 2004 - 13:38 #9
bare glem det :-) hi
Avatar billede l_otto Nybegynder
25. oktober 2004 - 09:36 #10
er du online :-) har lige et sprg til :-)
Avatar billede hiks Nybegynder
25. oktober 2004 - 09:39 #11
skyd! :o)

/hiks
Avatar billede l_otto Nybegynder
25. oktober 2004 - 09:42 #12
<%
strSQL1 = "SELECT * FROM orders Where status='complete' "


set rs1 = conn.execute(strsql1)

Do
 

Response.write "<table>"
Response.write "<tr><td bgcolor='#f1ede7'><b>klub</td><td  bgcolor='#f1ede7'><b>Fornavn</td><td  bgcolor='#f1ede7'><b>Efternavn</td><td  bgcolor='#f1ede7'><b>E.mail</td><td  bgcolor='#f1ede7'><b>Total</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><td  bgcolor='#f1ede7'><b>Produkt</td><tr>"
Do
Response.write "<tr><td bgcolor='#FFF5D7'>"
  ' Personens navn

strNavn = rs1("fFirma")
  ' lav et link til person.asp med Id-værdien i URL
  strLink = "<b><a href='faktura.asp?id=" & rs1("orderID") & "'><FONT SIZE='1' COLOR='#000000'>" & strNavn & "</a>"

  Response.Write strLink
 
 
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("fName")
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("lName")
  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write "<a href=""mailto:" & rs1("email") & """>" & rs1("email") & "</a>"

  Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs1("Total")& ".00"
  VAR = VAR + rs1("Total")
 

 

 

 
 

strSQL2 = "SELECT orders.orderid, itemsordered.orderid, itemsordered.quantity, itemsordered.productid, products.productid, products.productname FROM orders INNER JOIN (itemsordered INNER JOIN products ON itemsordered.productid = products.productid) ON itemsordered.orderid = orders.orderid  WHERE itemsordered.orderid = " & rs1("orderid")

set rs2 = conn.execute(strsql2)
Do
    Response.write "</td><td bgcolor='#FFF5D7'>"
  Response.write rs2("productname")

  rs2.movenext
  Loop while not rs2.EOF
rs1.movenext
Loop while not rs1.EOF
Response.write "</td></tr>"
Response.Write "</table>"

response.write "<BR><BR><b>TOTAL OMSÆTNING: " & VAR * 0.8& ".00  ex.moms<BR><BR>"


strSQL3 = "SELECT SUM(Quantity) As Antal, products.ProductID, products.ProductName " & _
          "FROM itemsordered INNER JOIN products ON itemsordered.productid = products.productid " & _
          "GROUP BY products.productid, products.ProductName"

set rs3 = conn.execute(strSQL3)

If rs3.eof = False then
      While rs3.eof = false

Response.write "<table>"
Response.write "<tr><td bgcolor='#f1ede7'><b>Kort serie</td><td bgcolor='#f1ede7'><b>Antal</td></td><tr>"


Response.write "<tr><td bgcolor='#FFF5D7'>"
Response.write rs3("ProductName")
Response.write "</td><td bgcolor='#FFF5D7'>"
Response.write rs3("antal")
Response.write "</td></tr>"       
Response.Write "</table>"           

            rs3.movenext
           
      Wend
Else
      Response.Write "Ingen solgte varer!"
End If

 
 


Loop While Not rs1.EOF
Conn.Close
Set Conn = Nothing


%>


den bliver ved med at tage "kort" og "antal" med hver gang den viser resultat den skal jo kun stå for oven..:-)
Avatar billede hiks Nybegynder
25. oktober 2004 - 09:52 #13
Hej

Det er fordi det ikke skal med i loopet! Sådan her istedet:


If rs3.eof = False then 'tjekker tomt recordset

Response.write "<table>"
Response.write "<tr><td bgcolor='#f1ede7'><b>Kort serie</td><td bgcolor='#f1ede7'><b>Antal</td></td>"

      While rs3.eof = false 'loop begynder hvis der er noget i recordset

Response.write "<tr><td bgcolor='#FFF5D7'>"
Response.write rs3("ProductName")
Response.write "</td><td bgcolor='#FFF5D7'>"
Response.write rs3("antal")
Response.write "</td></tr>"       
Response.Write "</table>"           

            rs3.movenext
           
      Wend 'loop slutter
Else
      Response.Write "Ingen solgte varer!"
End If

/hiks
Avatar billede l_otto Nybegynder
25. oktober 2004 - 09:56 #14
nu er det kun den første linie er er rigtig.. resten af produkterne kommer bare efter hinanden ?
Avatar billede hiks Nybegynder
25. oktober 2004 - 10:10 #15
If rs3.eof = False then 'tjekker tomt recordset

Response.write "<table>"
Response.write "<tr><td bgcolor='#f1ede7'><b>Kort serie</td><td bgcolor='#f1ede7'><b>Antal</td></td>"

      While rs3.eof = false 'loop begynder hvis der er noget i recordset

Response.write "<tr><td bgcolor='#FFF5D7'>"
Response.write rs3("ProductName")
Response.write "</td><td bgcolor='#FFF5D7'>"
Response.write rs3("antal")
Response.write "</td></tr>"       

            rs3.movenext
           
      Wend 'loop slutter

Response.Write "</table>"

Else
      Response.Write "Ingen solgte varer!"
End If
Avatar billede l_otto Nybegynder
25. oktober 2004 - 10:50 #16
sådan ja tak..
når men :-) he

i "itemsordered" er der jo er productid

productid  25 = 100 pk sko

nu viser den at der er solgt 3 x 150 pk sko

jeg vil gerne den viser sko = 450 pk , men den kan ikke så godt lave "sum" fordi :

productid 25 ikke er 150 stk det står på produktnavn hvad productid 25 indeholder:-)

Kan man lave noget hvor jeg fortæller den:

productid  25 = 150 - sko
productid  26 = 250 - sko
Avatar billede l_otto Nybegynder
25. oktober 2004 - 10:50 #17
så man kan lave en rigtig total :-)
Avatar billede hiks Nybegynder
25. oktober 2004 - 10:53 #18
det skal du lave i dine tabeller - den slags skal man ikke hardcode i sin asp-kodning.

Du bør tilføje en attribut i din product tabel, hvor du kan angive mængde og evt. mængdetype og så kan man summere og gange sammen på den slags.

/hiks
Avatar billede l_otto Nybegynder
25. oktober 2004 - 10:55 #19
øv :-) ok takker
Avatar billede hiks Nybegynder
25. oktober 2004 - 11:03 #20
til den tid kan du så lave en:

strSQL3 = "SELECT SUM(Quantity) As Antal, SUM(Quantity*DinMaengdeAttribut) As Total, products.ProductID, products.ProductName " & _
          "FROM itemsordered INNER JOIN products ON itemsordered.productid = products.productid " & _
          "GROUP BY products.productid, products.ProductName"

/hiks
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