webForumDet fria alternativet
Logga in / Bli medlem

addera tal efter datum

ASP

22 svar · 417 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Trådstart#1

Hejsan

det är som så att jag hålle rpå med ett e-handelssystem och det jag vill är att man ska kunna se de totala beställningskostnaderna under 1månad, dvs om det har lagt 30 ordrar á 2000:- st under april månad, så skall systemet räkna ut detta och redovisa det, typ så här:

jan 178657:-
feb 87567:-
.
.
.

osv och sedan kanske man skulle kunna ha en stampeldiagram kopplad till detta om så är möjligt?

jag har i databasen två kolumner i en tabell en för order datumet och en för priset, problemet är egentligen hur programmet skall känna av datumet och redovisa siffrorna? datumet ser ut på följande sett i databasen: 31/3/2003

Medlem sedan dec. 20003 563 inlägg
#2

SQL = "SELECT month(datum), sum(kostnad) FROM tabell GROUP BY 1"
Kan ju alltid funka :)

Medlem sedan juni 200032 967 inlägg
#3

Jag utgår ifrån att datumet är lagrat i ett fält av datumtyp, då kan du använda de inbyggda datumfunktionerna.

Vilken dbms gäller frågan? Om access, kanske en sql-fråga lik denna kan göra susen:

SELECT Month(datumfältet) AS MonthValue, SUM(pengafältet) GROUP BY 1 ORDER BY 1

Mvh

Medlem sedan dec. 20001 626 inlägg
#4

vad är det då man ska skriva ut sen??
jag har namnget pangarfältet till total, och order datumet till orderdate, vad är det jag ska skriva ut efter att ha kört sql-satsen? är det bara att skriva ut fälten sen typ:

response.write " '" &rsTemp("orderdate")& "' : '" &rsTemp("total")& "' " ??

dvs hur sorterar man efter datum sen när man skriver ut satsen??
dvs att den i februari månad bara adderar februaris siffror och skriver ut dessa?

Medlem sedan dec. 20003 563 inlägg
#5

Allt sånt är fixat.. Testa koden. ;)

Medlem sedan dec. 20001 626 inlägg
#6

men fortfarande inget skrivs ut???? jag måste ju skriva ut någonting, jag har testat koden, men den returnerar bara html kodningen som jag har i include filerna

Medlem sedan jan. 20032 285 inlägg
#7

Om du använder @nders SQL-rad skriver du ut det med:

Response.Write("Månad: " & objRS("MonthValue") & ", pengar: " & objRS(1) & "<br>")

Eller något liknande. :)

Medlem sedan dec. 20001 626 inlägg
#8

jag fårföljande felmeddelande när jag kör den:

Microsoft JET Database Engine error '80040e14' 

Syntax error (missing operator) in query expression 'SUM(total) GROUP BY 1 ORDER BY 1'.
Medlem sedan mars 20023 561 inlägg
#9

Borde det inte vara:

SELECT Month(datumfältet) AS MonthValue, SUM(pengafältet) [b]FROM [i]tabellen[/i][/b] GROUP BY 1 ORDER BY 1

:q

Medlem sedan dec. 20001 626 inlägg
#10

nu får jag detta:
You tried to execute a query that does not include the specified expression 'Month(orderdate)' as part of an aggregate function.

min tabell orderdate är satt till datum tid datum/tid, har även testat med text men samma felmeddelande ???

Medlem sedan juni 200032 967 inlägg
#11

Josef skrev:

Borde det inte vara:

SELECT Month(datumfältet) AS MonthValue, SUM(pengafältet) [b]FROM [i]tabellen[/i][/b] GROUP BY 1 ORDER BY 1

:q

Givetvis ska det vara så. Hjärnsläpp från min sida.

Gimbo skrev:

nu får jag detta:
You tried to execute a query that does not include the specified expression 'Month(orderdate)' as part of an aggregate function.

Visa koden du använder.

Mvh

Medlem sedan dec. 20001 626 inlägg
#12
<!--#include file="includes/header.asp"--><%
'on error resume next
		Set Database = Server.CreateObject( "Adodb.Connection" )
		Database.Provider = "Microsoft.Jet.OLEDB.4.0" 
		MdbFilePath = Server.MapPath("database.mdb")
		Database.ConnectionString = "Data Source='" &MdbFilePath& "'"
		Database.open
'dim mySQL, rsTemp, conntemp
mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) From orders GROUP BY 1 ORDER BY 1"

set rsTemp = database.execute(mySQL)

Response.Write "Månad: " & rsTemp("MonthValue") & ", pengar: " & rsTemp(1) & "& "<br>" "

%>
<!--#include file="includes/footer.asp"-->
Medlem sedan dec. 20003 563 inlägg
#13
Response.Write "Månad: " & rsTemp("MonthValue") & ", pengar: " & rsTemp(1) & "& "<br>" "
 till
Response.Write "Månad: " & rsTemp(1) & ", pengar: " & rsTemp(2) & "& "<br>" "

kanske?

Medlem sedan mars 20023 561 inlägg
#14

Borde det inte i så fall vara:

Response.Write "Måndad: " & rsTemp(0) & ", pengar: " & rsTemp(1) & "<br>"
Medlem sedan dec. 20001 626 inlägg
#15

samma fel, jag får felmeddelandet på mySQL raden

Medlem sedan dec. 20003 563 inlägg
#16

Copy & Paste :r

Medlem sedan mars 20023 561 inlägg
#17

Prova att sätta ett namn på sum(total) också:

mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) As totalt FROM orders GROUP BY 1 ORDER BY 1"

och då sedan ha

Response.Write "Måndad: " & rsTemp("monthvalue") & ", pengar: " & rsTemp("totalt") & "<br>"
Medlem sedan juni 200032 967 inlägg
#18
mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) From orders GROUP BY [b]Month(orderDate)[/b] ORDER BY 1"

Mvh

Medlem sedan dec. 20001 626 inlägg
#19

tackar det funka, jag har en till fråga nu, jag har en kolumn, orderstatus, då den är satt till 2 så innebär det att ordern har avbrytits, jag vill att dessa ordrar inte räknas med i rapporten där jag sumerar alla ordrar hur går jag till väga för att subtrahera ordrar med orderstatus = 2 ???

och en sak till, på månad så står det bara månadsnumret, inte vad det är för månad, dvs månad: 3 står det nu istället för mars??

Medlem sedan juni 200032 967 inlägg
#20

Det är bara att slänga på lite villkor i en where-sats.

mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) From orders [b]WHERE NOT orderstatus = 2 [/b]GROUP BY Month(orderDate) ORDER BY 1"

Månadsnummer 3 är mars, ja.

MonthName()

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)