Avatar billede chakazulu Nybegynder
10. februar 2010 - 17:17 Der er 5 kommentarer og
1 løsning

SQL - WHERE Tablename AND lngRecordNo Spørgsmål...

Er der nogle der kan se fejlen?
6 timers hovedpine


sql = "SELECT sum(Total_AllIncluded1) AS Sum_Total_AllIncluded1 FROM Kvitteringer WHERE OrderForm_Company1='Kontant' AND dagsdato=" & lngRecordNo

<% Response.Write rs1("Sum_Total_AllIncluded1") %>,- DKK

Jeg prøver at få en webside til at vise alle betalinger "Kontant"
udfra dagsdato lngRecordNo
10. februar 2010 - 19:55 #1
chakazulu, du giver os ikke meget hjaelp til at hjaelpe dig.  Saa jeg maa udforske lidt.  Din query kunne tyde paa at du har en tabel kaldet Kvitteringer med, i det mindste, disse felter:  Total_AllIncluded1 af typen DECIMAL, OrderForm_Company1 af typen VARCHAR, OG dagsdato af typen DATE. Og er lngRecordNo en variabel med en dato som du indsaette i querien.  For at goere det helt firkantet har jeg laved understaaende tabel med lidt data.

I saa fald burde din query resultere i en fejl fordi du bruger en "aggregate" funktion, SUM() der skal give et enkelt resultat, i en query der normalt vil resultere i adskillige resultater.  Proev at ende din query med GROUP BY Total_AllIncluded1.  Saa har du en stoerre chance for at det virler. 

Altsaa:  sql = "SELECT sum(Total_AllIncluded1) AS Sum_Total_AllIncluded1 FROM Kvitteringer WHERE OrderForm_Company1='Kontant' AND dagsdato=" & lngRecordNo GROUP BY Total_AllIncluded1.

Hvis jeg har gaettet din problemstilling forkert er der nok ikke andet at goere enten at fortaelle mig mere eller haabe paa at der er andre der er bedre til at gaette.

Her er den tabel jeg forestiller mig at du kunne have:

CREATE TABLE chakazulu(Total_AllIncluded1 DECIMAL, OrderForm_Company1 VARCHAR(10), dagsdato DATE);

INSERT INTO chakazulu VALUES(25.25, 'kontant', '2010-02-10');
INSERT INTO chakazulu VALUES(30.00, 'kontant', '2010-02-10');
INSERT INTO chakazulu VALUES(35.12, 'kredit', '2010-02-09');
INSERT INTO chakazulu VALUES(40.55, 'klodshans', '2010-02-10');
INSERT INTO chakazulu VALUES(45.07, 'kontant', '2010-02-09');
INSERT INTO chakazulu VALUES(50.17, 'kontant', '2010-02-09');
Avatar billede hugopedersen Nybegynder
11. februar 2010 - 07:25 #2
Det er ikke nok at lave group by på Total_AllIncluded1!

Normalt brokker Access sig hvis ikke alle valgte felter er med så det må nødvendigvis være >>GROUP BY OrderForm_Company1, dagsdato;<< der skal tilføjes.
Total_AllIncluded1 er jo allerede med i aggregatfunktionen ved det at der summeres på den.
Avatar billede chakazulu Nybegynder
11. februar 2010 - 09:13 #3
URL: Dagsrapport.asp?ID=822010


                                <%

Dim Conn0   
Dim rs0       
Dim sql0           
   

lngRecordNo = CLng(Request.QueryString("ID"))


Set Conn0 = Server.CreateObject("ADODB.Connection")


Conn0.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/e-shop.mdb")

adoCon.Open "DSN=guestbook"


Set rs0 = Server.CreateObject("ADODB.Recordset")


sql0 = "SELECT sum(Total_AllIncluded1) AS Sum_Total_AllIncluded1 FROM Kvitteringer WHERE OrderForm_Company1='Kontant' AND dagsdato=" & lngRecordNo
Set rs0 = Conn0.Execute(sql0)

%><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Indbetalt Kontant ialt = <b><% Response.Write rs0("Sum_Total_AllIncluded1") %>,- DKK



MIN ACCESS DB indeholder:

PRIS: Sum_Total_AllIncluded1
DATO: dagsdato = value 1122010 bliver kaldt som ID via lngRecordNo
Betalingstype: OrderForm_Company1 = value 'Kontant' eller 'Dankort'

Jeg vil gerne regne Sum_Total_AllIncluded1 ud fra ROWS der indeholder f.eks. dagsdato=1122010 OG OrderForm_Company1='Kontant'

THX
Avatar billede hugopedersen Nybegynder
11. februar 2010 - 10:00 #4
Jeg er ikke helt sikkert på at det er de feltnavne du bruger, men resultatet er OK


SELECT Sum(Kvitteringer.AllIncluded1) AS SumOfAllIncluded1, Kvitteringer.OrderForm_Company1, Kvitteringer.dagsdato
FROM Kvitteringer
WHERE (((Kvitteringer.OrderForm_Company1)="kontant") AND ((Kvitteringer.dagsdato)=#2/11/2010#))
GROUP BY Kvitteringer.OrderForm_Company1, Kvitteringer.dagsdato;
Avatar billede chakazulu Nybegynder
11. februar 2010 - 19:31 #5
TAK Christian_Belgien & hugopedersen

Jeg forklaret mig måske ikke så godt, men tak alligevel.

Jeg fandt selv en løsning...

TIL ALLE ANDRE INTERESSERET...
Jeg poster min kode så i også kan bruge det:



URL.: http://localhost/Dagsrapport.asp?ID=1122010
Man kalder resultatet gennem URL'en
ID=1122010 er idags dato uden punktumer osv.
Row: (dagsdato) indeholder =1122010


<%
'Dimension variables
Dim Conn9    'Holds the Database Connection Object
Dim rs9    'Holds the recordset for the records in the database
Dim sql9            'Holds the SQL query for the database
        'Holds the record number to be updated


'Create an ADO connection odject
Set Conn9 = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
Conn9.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/e-shop.mdb")

sql9 = "SELECT OrderForm_Company1,SUM(Total_AllIncluded1) AS Sum_Total_AllIncluded1 FROM kvitteringer GROUP BY OrderForm_Company1,dagsdato=" & lngRecordNo 


Set rs9 = Conn9.Execute(sql9)

%><%
   
    'Write the HTML to display the current record in the recordset
   
   
    'Loop through the recordset
    Do While not rs9.EOF
   
   
    Response.Write ("<TABLE BORDER=1 width=500 cellspacing=0 cellpadding=1 bordercolor=#ffffff bgcolor=#eeeeee>")
    Response.Write ("<td width=250><b><font face=verdana size=1>")
    Response.Write ("Betalingstype")
    Response.Write ("</b></td></font>")
 
   
   
  Response.Write ("<td  width=250><font face=verdana size=1><div align=right>") 
    Response.Write ("Total")
    Response.Write ("</b></td></font>")
   
   

    Response.Write ("</tr>")
 
    Response.Write ("<tr>")
    Response.Write ("<td><font face=verdana size=1>")
 
    Response.Write (rs9("OrderForm_Company1"))
   
   
   
   
    Response.Write ("</td></font></div>")
   
   
    Response.Write ("<td  height=30><font face=verdana size=1><div align=right>")

    Response.Write (rs9("Sum_Total_AllIncluded1"))   
    Response.Write (",-DKK")
    Response.Write ("<br>")
    Response.Write ("</td></font></div>")
   
 
   
 
   
 
    Response.Write ("</tr>")


    Response.Write ("</TABLE>")
           
   
   
 
   
 
    Response.Write ("<br>")

   
   
   

    'Move to the next record in the recordset
    rs9.MoveNext

Loop

'Reset server objects
rs9.Close
Set rs9 = Nothing
Set Conn9 = Nothing
%><br>
Avatar billede chakazulu Nybegynder
11. februar 2010 - 19:53 #6
TIL ALLE ANDRE INTERESSERET...
Jeg poster min kode så i også kan bruge det:



URL.: http://localhost/Dagsrapport.asp?ID=1122010
Man kalder resultatet gennem URL'en
ID=1122010 er idags dato uden punktumer osv.
Row: (dagsdato) indeholder =1122010


<%
'Dimension variables
Dim Conn9    'Holds the Database Connection Object
Dim rs9    'Holds the recordset for the records in the database
Dim sql9            'Holds the SQL query for the database
        'Holds the record number to be updated


'Create an ADO connection odject
Set Conn9 = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
Conn9.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/e-shop.mdb")

sql9 = "SELECT OrderForm_Company1,SUM(Total_AllIncluded1) AS Sum_Total_AllIncluded1 FROM kvitteringer GROUP BY OrderForm_Company1,dagsdato=" & lngRecordNo 


Set rs9 = Conn9.Execute(sql9)

%><%
   
    'Write the HTML to display the current record in the recordset
   
   
    'Loop through the recordset
    Do While not rs9.EOF
   
   
    Response.Write ("<TABLE BORDER=1 width=500 cellspacing=0 cellpadding=1 bordercolor=#ffffff bgcolor=#eeeeee>")
    Response.Write ("<td width=250><b><font face=verdana size=1>")
    Response.Write ("Betalingstype")
    Response.Write ("</b></td></font>")
 
   
   
  Response.Write ("<td  width=250><font face=verdana size=1><div align=right>") 
    Response.Write ("Total")
    Response.Write ("</b></td></font>")
   
   

    Response.Write ("</tr>")
 
    Response.Write ("<tr>")
    Response.Write ("<td><font face=verdana size=1>")
 
    Response.Write (rs9("OrderForm_Company1"))
   
   
   
   
    Response.Write ("</td></font></div>")
   
   
    Response.Write ("<td  height=30><font face=verdana size=1><div align=right>")

    Response.Write (rs9("Sum_Total_AllIncluded1"))   
    Response.Write (",-DKK")
    Response.Write ("<br>")
    Response.Write ("</td></font></div>")
   
 
   
 
   
 
    Response.Write ("</tr>")


    Response.Write ("</TABLE>")
           
   
   
 
   
 
    Response.Write ("<br>")

   
   
   

    'Move to the next record in the recordset
    rs9.MoveNext

Loop

'Reset server objects
rs9.Close
Set rs9 = Nothing
Set Conn9 = Nothing
%>
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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