---
title: "Något fel i sql´en"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/138555-något-fel-i-sql-en"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Asa"
published: "2005-12-01T07:49:31.000Z"
updated: "2005-12-02T04:11:33.000Z"
replies: 9
views: 370
page: 1
pages: 1
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/databaser-sql/138555-något-fel-i-sql-en"
---

# Något fel i sql´en

## #1 — Asa, 2005-12-01T07:49Z

Jag förstår inte varför inte detta fungerar. Som standard skall den hämta alla poster ifrån aktuella månaden ifrån databasen. Men den hämtar alla. Access databas och date är Datum/tid som fälttyp.

```
If Request.QueryString("year") = "" Then
  strYear  = Request.Form("year")
  strMonth = Request.Form("month")
Else
  strYear  = Request.QueryString("year")
  strMonth = Request.QueryString("month")
End If
strDate1 = Date()
strDate = Month(strDate1)
If Len(strDate) = 1 Then
  strDate = "0" & strDate
End If
If Len(strMonth) = 1 Then
  strMonth = "0" & strMonth
End If

	If strYear <> "" and strMonth <> "" Then
  		sql="SELECT orders.orderid, sum(priceperunit*qty) AS gtotal, orders.dfname, dlname,ipnummer,cctype, personnummer, date, codeNO FROM orders INNER JOIN orderitems ON orders.orderid=orderitems.orderid  where Left(orders.date,4)=" & strYear & " And Mid(orders.date,6,2)=" & strMonth & " and orderstatus=null or orderstatus='c' GROUP BY orders.orderid, dfname, dlname, ipnummer,cctype, personnummer, orders.date, codeNO Order By orders.orderid desc"
	ELseIf strYear <> "" and strMonth = "" Then
  		sql="SELECT orders.orderid, sum(priceperunit*qty) AS gtotal, orders.dfname, dlname,ipnummer,cctype, personnummer, date, codeNO FROM orders INNER JOIN orderitems ON orders.orderid=orderitems.orderid  where Left(orders.date,4)=" & strYear & " and orderstatus=null or orderstatus='c' GROUP BY orders.orderid, dfname, dlname, ipnummer,cctype, personnummer, orders.date, codeNO Order By orders.orderid desc"
	ELse
  		sql="SELECT orders.orderid, sum(priceperunit*qty) AS gtotal, orders.dfname, dlname,ipnummer,cctype, personnummer, date, codeNO FROM orders INNER JOIN orderitems ON orders.orderid=orderitems.orderid  where Left(orders.date,4)=" & Year(strDate1) & " And Mid(orders.date,6,2)=" & strDate & " and orderstatus=null or orderstatus='c' GROUP BY orders.orderid, dfname, dlname, ipnummer,cctype, personnummer, orders.date, codeNO Order By orders.orderid desc"
	End If
```

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

## #2 — @nders, 2005-12-01T08:05Z

Eftersom du använder or i WHERE så måste du gruppera med parenteser. Annars räcker det ju med att orderstatus är 'c' för att posten ska komma med.

Dessutom tycker jag att du borde använda datumfunktioner för att hämta ut månaden från fältet *date*. Att använda strängfunktioner på datum är att be om problem.

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

## #3 — Asa, 2005-12-01T08:11Z

ordetstatus=null behöver inte vara med. Funkade utan det iallafall.

Hur gör man detta då? Med att använda utan att lägga datum i stängar.. Kan du hjälpa mig med det?

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

## #4 — @nders, 2005-12-01T08:12Z

Dessutom kan du inte skriva = null, utan du måste använda *is null*. Det är bara att slänga in en parentes runt or-villkoren:

```
and (orderstatus is null or orderstatus='c')
```

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

## #5 — Asa, 2005-12-01T08:21Z

Tackar det funkade. Men hur ändrar jag till det du tyckte jag skulle använda? datumfunktioner i sql? Istället för strängar..

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

## #6 — @nders, 2005-12-01T08:24Z

I Access går det väl alldeles utmärkt att använda Month(datumfält) och Year(datumfält). Annars är du ju beroende av att du vet exakt hur datumen lagras i databasen, och det kan man ju aldrig veta...

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

## #7 — Asa, 2005-12-01T08:34Z

Okej, får testa det.. Datum och tid sparas iallafall så här: xxxx-xx-xx xx:xx:xx. 
Tackar för din hjälp.

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

## #8 — @nders, 2005-12-01T08:37Z

> Datum och tid sparas iallafall så här: xxxx-xx-xx xx:xx:xx

Hur kan du vara så säker på det? Att Access-applikationen och / eller asp-sidan presenterar datumet på det sättet behöver inte betyda att det är lagrat så.

mvh

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

## #9 — Asa, 2005-12-01T08:44Z

Just nu står det så i databasen men jag ändrar till det du sa. Funkade fintfint så det är nog bästa sättet. Tack!

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

## #10 — @nders, 2005-12-02T04:11Z

> Funkade fintfint så det är nog bästa sättet.

Men så trevligt!

<http://www.webforum.nu/showthread.php?t=134355>

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/138555-något-fel-i-sql-en
