---
title: "Dynamisk SQL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9204-dynamisk-sql"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "saw"
published: "2001-04-24T14:43:00.000Z"
updated: "2001-04-29T00:11:00.000Z"
replies: 24
views: 394
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/9204-dynamisk-sql"
---

# Dynamisk SQL

_Sida 1 av 2._

## #1 — saw, 2001-04-24T14:43Z

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?

Permalänk: https://www.webforum.nu/p/9204

## #2 — Eclipse, 2001-04-24T17:31Z

"Jag vill inte hårdkoda månaden..."
\- Du sparar väl alla köp med datum??

"...och sen köra en FOR-slinga..."
\- Kör du inte vanlig SQL?

"SELECT \* FROM \[products\] WHERE \[x_date\] = #" & date() & "#;"

Kolla manualen för att få enbart månaden... jag har inte det i huvudet.

Permalänk: https://www.webforum.nu/p/267421

## #3 — LarsG, 2001-04-24T17:35Z

Man kan ta en fråga som tar per månad

```
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
```

sDate är då försäljningsdatum.

Permalänk: https://www.webforum.nu/p/267422

## #4 — saw, 2001-04-25T05:38Z

det blev fel

Permalänk: https://www.webforum.nu/p/267423

## #5 — saw, 2001-04-25T05:39Z

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?

Permalänk: https://www.webforum.nu/p/267424

## #6 — LarsG, 2001-04-25T11:14Z

Åh fan, kör du access.

```
SQLStmt = "select Produkt,year(Datum) as y, month(Datum) as m,sum(antal),sum(pris) from produkt group by produkt, month(Datum), year(Datum)"
```

Kanske, jag har ingen möjlighet att testa.

Permalänk: https://www.webforum.nu/p/267425

## #7 — saw, 2001-04-25T15:09Z

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?

Permalänk: https://www.webforum.nu/p/267426

## #8 — LarsG, 2001-04-25T15:35Z

Är det hela satsen? Det saknas parenteser i slutet och så står det **selec** i stället för select.

Kan du visa den som fungerar och den som inte fungerar så ...

Permalänk: https://www.webforum.nu/p/267427

## #9 — saw, 2001-04-25T18:53Z

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.

Permalänk: https://www.webforum.nu/p/267428

## #10 — LarsG, 2001-04-25T18:58Z

Det saknas ett komma här

```
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

Permalänk: https://www.webforum.nu/p/267429

## #11 — saw, 2001-04-26T05:18Z

Jag blir nog med n\*barn på det här.

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)"

Skall jag verkeligen behöva ge mig?

Permalänk: https://www.webforum.nu/p/267430

## #12 — LarsG, 2001-04-26T07:44Z

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]"
```

Permalänk: https://www.webforum.nu/p/267431

## #13 — @nders, 2001-04-26T07:46Z

:q

Permalänk: https://www.webforum.nu/p/267432

## #14 — LarsG, 2001-04-26T10:37Z

Vad säger jag. Bortse från mitt förra inlägg.

Permalänk: https://www.webforum.nu/p/267433

## #15 — LarsG, 2001-04-26T10:40Z

Ett nytt försök

```
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.

Permalänk: https://www.webforum.nu/p/267434

## #16 — saw, 2001-04-26T14:29Z

Många tack, nu tycks det fungera.
Jag är väldigt tacksam för all hjälp

Permalänk: https://www.webforum.nu/p/267435

## #17 — saw, 2001-04-28T08:23Z

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?

Permalänk: https://www.webforum.nu/p/267436

## #18 — @nders, 2001-04-28T09:56Z

använder du on error resume next?
isf, ta bort det så bör du få reda på varifrån felet härstammar, och hur det felet 'vanligtvis' ser ut.

Permalänk: https://www.webforum.nu/p/267437

## #19 — saw, 2001-04-28T10:50Z

Eftersom det ligger på servern, så får jag bara fram:

An error occurred on the server when processing the URL. Please contact the system administrator.

Jag kan inte få något bättre felmedelande om jag inte använder On Error resume next.
Då får jag den som jag visade vid mitt förra inlägg.

Permalänk: https://www.webforum.nu/p/267438

## #20 — @nders, 2001-04-28T11:27Z

stäng av vänliga felmeddelanden i din browser, det är browsern som ger dig http 500 internal server error.

Permalänk: https://www.webforum.nu/p/267439

---

Tråden på webben: https://www.webforum.nu/amne/asp/9204-dynamisk-sql  
Nästa sida: https://www.webforum.nu/amne/asp/9204-dynamisk-sql/page2.md
