Jag försöker att göra en redovisningssida till min webbshop. Jag vill ha resultat efter varje månad hur mycket av varje produkt som är sålt och totalsumman. I slutet så vill jag ha en totalt antal sålda produkter, och totalt pris för innevarande år.
I tapellen Prod, ingår bl a Produkt, Antal, Datum och pris. Hur bör en SQL se ut? Jag vill inte hårdkoda månaden utan jag tänkte att man skulle kunna få ut månadsnummren och sen köra en FOR-slinga som sen kopplas på något sätt till SQL:en.
Någon som har ett vettigt förslag?
select produkt,y,m,sum(antal*pris),sum(antal) from (
select
Produkt,
year(sDate) as y, month(sDate) as m,
antal,pris from produkt)
group by produkt,y,m
och en som tar per år
select produkt,y,sum(antal*pris),sum(antal) from (
select
Produkt,
year(sDate) as y
antal,pris from produkt)
group by produkt,y
Det stötte på patrull.
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
Jag fick göra en fråga där alla fälten fanns, men likväl så får jag felmedelande. Jag undrar kan det vara den biten som gör om datumet?
Jag var tvungen att ändra ditt sDate till Datum ( som jag har i tabellen/frågan.)
SQLStmt = "select produkt,y,m,sum(antal*pris),sum(antal) from (select Produkt,year(Datum) as y, month(Datum) as m,antal,pris from produkt)group by produkt,y,m"
Vad tror ni?
Det fungerade superbra, men...
När jag skulle försöka med nästa, så fick jag syntaxfel i join utrycket.
Vad tror ni:
SQLStmt1 = " select produkt,year(Datum) as y,sum(antal*pris) as totkr,sum(antal) as totnr from (selec Produkt,year(Datum) as y antal,pris from produkt) group by produkt,year(Datum"
Jag har försökt att göra som förra, men missar någonstans, men kan inte se det själv, kan ni?
Detta är alltså SQL:en som skall ta fram totalt under året.
Trots justeringen som du påpekade så plir det ERROR
SQLStmt1 = " select produkt,year(Datum) as y,sum(antal*pris) as totkr,sum(antal) as totnr from (select Produkt,year(Datum) as y antal,pris from produkt) group by produkt,year(Datum)"
ERROR:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] SELECT-uttrycket innehåller ett reserverat ord eller argument som antingen är felstavat eller utelämnat, eller så är skiljetecknen felaktigt använda.
Det är som sagt ACCESS jag använder mig av.
SQLStmt1 = " select produkt,year(Datum) as y,sum(antal*pris) as totkr,sum(antal) as totnr from (select Produkt,year(Datum) as y[b],[/b] antal,pris from produkt) group by produkt,year(Datum)"
Red: det syntes inte så tydligt fast jag gjorde bold, men det saknas ett komma efter as y i din inre select
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
Jag har kollat och dubbelkollat men vad jag kan se, så finns det inga felstavningar eller annat glömt.
SQLStmt1 = "select produkt,year(Datum) as y, sum(pris) as totkr,sum(antal) as totnr from (select Produkt,year(Datum) as y, antal,pris from produkt) group by produkt,year(Datum)"
Det saknas en avslutande parentes efter sista year(datum)
SQLStmt1 = "select produkt,year(Datum) as y, sum(pris) as totkr,sum(antal) as totnr from (select Produkt,year(Datum) as y, antal,pris from produkt) group by produkt,year(Datum)[b])[/b]"
SQLStmt1 = "select produkt, y, sum(pris) as totkr,sum(antal) as totnr from (select Produkt,year(Datum) as y, antal,pris from produkt) group by produkt,y"
Det är lite famlande då jag, som sagt, inte kan testa.
Lyckan är tydligen ett väldigt kort ögonblick(enligt vissa 3 sek).
På min burk så fungerade mina SQL:er kanon, men så fort som jag la ut det på servers, så blev det ett hastigt uppvaknande. ERROR!!!
SQL:
SQLStmt1 = "select Kategori,produkt, y, sum(pris) as totkr,sum(antal) as totnr from (select Kategori,Produkt,year(Datum) as y, antal,pris from produkt) group by Kategori,produkt,y"
ERROR:
VBScript Errors Occured:
Error Number=13
Error Descr.=Type mismatch
Help Context=0
Source=Microsoft VBScript runtime error
Database Errors Occured
Error #-2147217900
Denna error text dyker upp när jag försöker att köra, någon som vet vad jag skall göra?