webForumDet fria alternativet

addera tal efter datum

22 svar · 408 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 630 inlägg
#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

cyprysMedlem sedan dec. 20003 105 inlägg
#2

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

@ndersMedlem sedan juni 200026 914 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

GimboMedlem sedan dec. 20001 630 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?

cyprysMedlem sedan dec. 20003 105 inlägg
#5

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

GimboMedlem sedan dec. 20001 630 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

SebbeMedlem sedan jan. 20031 603 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. :)

GimboMedlem sedan dec. 20001 630 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'.
JosefMedlem sedan mars 20023 123 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

GimboMedlem sedan dec. 20001 630 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 ???

@ndersMedlem sedan juni 200026 914 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

GimboMedlem sedan dec. 20001 630 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"-->
cyprysMedlem sedan dec. 20003 105 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?

JosefMedlem sedan mars 20023 123 inlägg
#14

Borde det inte i så fall vara:

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

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

cyprysMedlem sedan dec. 20003 105 inlägg
#16

Copy & Paste :r

JosefMedlem sedan mars 20023 123 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>"
@ndersMedlem sedan juni 200026 914 inlägg
#18
mySQL="SELECT Month(orderDate) AS MonthValue, SUM(total) From orders GROUP BY [b]Month(orderDate)[/b] ORDER BY 1"

Mvh

GimboMedlem sedan dec. 20001 630 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??

@ndersMedlem sedan juni 200026 914 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()

135 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
133 ms — hämta tråd, inlägg och bilagor (db)