---
title: "Krånglig fråga med klockslag!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/174069-krånglig-fråga-med-klockslag/page4"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "oskars"
published: "2008-09-15T17:40:55.000Z"
updated: "2008-10-03T10:04:36.000Z"
replies: 131
views: 4278
page: 4
pages: 7
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/174069-krånglig-fråga-med-klockslag"
---

# Krånglig fråga med klockslag!

_Sida 4 av 7._

## #61 — oskars, 2008-09-22T19:13Z

Okej, tack! Ska testa den direkt nu!

Och detta ska fortfarande fungera över dygnsgränserna? T.ex 2300 - 0100?

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

## #62 — Peter S, 2008-09-22T19:13Z

Tycker det :)

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

## #63 — oskars, 2008-09-22T19:15Z

> **Peter S skrev:**
>
> Tycker det :)

SKITBRA svarat, haha!

Återkommer med testresultatet!

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

## #64 — oskars, 2008-09-22T19:36Z

Hm... känns som att det är VÄLDIGT nära nu...

Men får ändå det här:
\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error (missing operator) in query expression 'Weekday(d.Startdatum) = 3 AND Starttid \> '2300' AND Sluttid \< '0100' dt'. 

På detta:

```
SELECT d.Startdatum, ( SELECT COUNT(*)+1 FROM allingsas WHERE ((Starttid > d.Starttid AND Starttid < d.Sluttid) 
OR (Sluttid > d.Starttid AND ((Sluttid < d.Sluttid AND Slutdatum = d.Startdatum) 
OR (Sluttid > d.Sluttid AND Slutdatum < d.Slutdatum)))) AND Weekday(Startdatum) = 3) as c 
FROM allingsas d WHERE Weekday(d.Startdatum) = 3 AND Starttid > '2300' AND Sluttid < '0100' dt
```

Jag var tvungen att ta bort K1 = '06' och framförallt InStr(AC,'-') \< 0 ... för det verkade inte fungera med dom. Får testa att lägga till det sen när "grunden" är färdig!

EDIT: Jag har gått igenom den utskrivna frågan hundra gånger nu.. hittar inget fel.

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

## #65 — Peter S, 2008-09-22T19:44Z

```
SELECT d.Startdatum
     , ( SELECT COUNT(*)+1 
           FROM allingsas 
          WHERE ((Starttid > d.Starttid AND Starttid < d.Sluttid) 
             OR (Sluttid > d.Starttid AND ((Sluttid < d.Sluttid AND Slutdatum = d.Startdatum) 
             OR (Sluttid > d.Sluttid AND Slutdatum < d.Slutdatum)))) AND Weekday(Startdatum) = 3) as c 
  FROM allingsas d 
 WHERE Weekday(d.Startdatum) = 3 
   AND Starttid > '2300' 
   AND Sluttid < '0100'
```

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

## #66 — oskars, 2008-09-22T19:54Z

AHA!!! Du vill fortfarande att jag ska ha med:

```
SELECT max(dt.c) 
  FROM (...
```

osv... eller hur? Jag lägger dit det igen :)
Eller kanske inte... hm... För nu har jag inget Antal.. jag testar med det jag skrev här!

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

## #67 — Peter S, 2008-09-22T19:57Z

Men med mitt förra inlägg får du ju ett antal. :)

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

## #68 — oskars, 2008-09-22T19:59Z

Hm... Nä...

RecSet("Startdatum") & RecSet(0)

Resulterade i 2008-08-01 2008-08-01

dvs. dubbeldatum :)

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

## #69 — Peter S, 2008-09-22T20:01Z

Det är för att du måste skriva:

```
RecSet("Startdatum") & RecSet("c")
```

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

## #70 — oskars, 2008-09-22T20:04Z

JAG TESTADE DET!!! Kvällen tar ut sin rätt! Tack iaf! :)

Intressant resultat jag får fram iaf:

2008-08-04 ; 4828 
2008-08-04 ; 4848 
2008-08-04 ; 7 

Det verkar vara rätt till en tredjedel. För det första så ska datumet bara visas 1st gång... och ja... 4828 är inte möjligt :) Undrar vad det är för siffror...

EDIT: (testar på bara 1st dag nu)
Fredagar 0030 - 0100 ger:
2008-08-01 ; 10012 
2008-08-01 ; 9983 

Det ska vara totalt 4st (om jag minns rätt nu) för den frågan...

EDIT: hehe....
2008-08-01 ; 10012 
2008-08-01 ; 9983 
2008-08-22 ; 654 
2008-08-29 ; 368 
2008-08-29 ; 67 
2008-07-04 ; 9503 
2008-07-04 ; 345 
2008-07-11 ; 9673 
2008-07-11 ; 231 
2008-07-18 ; 9746 
2008-07-18 ; 252 
2008-07-25 ; 9870 
2008-07-25 ; 15 
2008-06-06 ; 8611 
2008-06-06 ; 8590 
2008-06-06 ; 366 
2008-06-06 ; 41 
2008-06-06 ; 13 
2008-06-13 ; 8847 
2008-06-13 ; 1065 
2008-06-13 ; 1 
2008-06-13 ; 1 
2008-06-27 ; 13 
2008-06-27 ; 1 

Alldeles för höga siffror... konstigt som fan...!

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

## #71 — Peter S, 2008-09-22T20:10Z

Testa så här i stället:

```
  SELECT d.Startdatum
     , ( SELECT COUNT(*)+1 
           FROM allingsas 
          WHERE ((Starttid > d.Starttid AND Starttid < d.Sluttid) 
             OR (Sluttid > d.Starttid AND ((Sluttid < d.Sluttid AND Slutdatum = d.Startdatum) 
             OR (Sluttid > d.Sluttid AND Slutdatum < d.Slutdatum)))) AND Startdatum = d.Startdatum) as c 
  FROM allingsas d 
 WHERE Weekday(d.Startdatum) = 3 
   AND Starttid > '2300' 
   AND Sluttid < '0100'
```

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

## #72 — oskars, 2008-09-22T20:20Z

Japp! Mkt mkt mkt finare :) Bra jobbat som fan av dig!

Den visar dock ett datum flera gånger.

Så här t.ex:
2008-08-05 ; 4 
2008-08-05 ; 3 
2008-08-12 ; 2 
2008-08-12 ; 2 
2008-08-19 ; 1 
2008-08-26 ; 2 
2008-08-26 ; 1 

Bara 1st datum per... ja.. datum :)

Jag ska kontrollera så att siffrorna verkligen stämmer också...

Du är ett SQL-geni!

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

## #73 — Peter S, 2008-09-22T20:24Z

```
SELECT dt.sd, max(dt.c)
  FROM (   
  SELECT d.Startdatum as sd
     , ( SELECT COUNT(*)+1 
           FROM allingsas 
          WHERE ((Starttid > d.Starttid AND Starttid < d.Sluttid) 
             OR (Sluttid > d.Starttid AND ((Sluttid < d.Sluttid AND Slutdatum = d.Startdatum) 
             OR (Sluttid > d.Sluttid AND Slutdatum < d.Slutdatum)))) AND Startdatum = d.Startdatum) as c 
  FROM allingsas d 
 WHERE Weekday(d.Startdatum) = 3 
   AND Starttid > '2300' 
   AND Sluttid < '0100')
       ) dt
GROUP
    BY dt.sd
```

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

## #74 — oskars, 2008-09-22T20:32Z

Alltså, nu skäms jag så mkt att jag spricker snart. Men jag hittar aldrig några fel, även om dom finns där.

\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error in FROM clause. 

```
SELECT dt.sd, max(dt.c) FROM (SELECT d.Startdatum sd, (SELECT COUNT(*)+1 FROM allingsas WHERE ((Starttid > d.Starttid AND Starttid < d.Sluttid) OR (Sluttid > d.Starttid AND ((Sluttid < d.Sluttid AND Slutdatum = d.Startdatum) OR (Sluttid > d.Sluttid AND Slutdatum < d.Slutdatum)))) AND Startdatum = d.Startdatum) as c FROM allingsas d WHERE Weekday(d.Startdatum) = 2 AND Starttid > '1000' AND Sluttid < '1100')) dt GROUP BY dt.sd
```

Vill bara få ett slut på det så vi kan lämna det här bakom oss   :e  Du gör ett GRYMT jobb!

EDIT: Det är så många parenteser att jag inte hänger med!

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

## #75 — Peter S, 2008-09-22T20:36Z

Jag har redigerat det förra inlägget :)

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

## #76 — oskars, 2008-09-22T20:42Z

Jag är hemskt ledsen alltså... det fungerar inte ändå :( samma fel

```
RecSet.Open "SELECT dt.sd, max(dt.c) FROM ( SELECT d.Startdatum as sd, ( SELECT COUNT(*)+1 FROM allingsas WHERE ((Starttid > d.Starttid AND Starttid < d.Sluttid) OR (Sluttid > d.Starttid AND ((Sluttid < d.Sluttid AND Slutdatum = d.Startdatum) OR (Sluttid > d.Sluttid AND Slutdatum < d.Slutdatum)))) AND Startdatum = d.Startdatum) as c FROM allingsas d WHERE Weekday(d.Startdatum) = "&Request.Form("Veckodag")&" AND Starttid > '"&Starttid&"' AND Sluttid < '"&Sluttid&"') ) dt GROUP BY dt.sd", Connect, 3, 3

	Do Until RecSet.EOF
	
		Response.Write("<tr style=""background-color:#"&Color&"""><td width=""100"">"&RecSet("sd")&"</td><td width=""10"">;</td><td>"&RecSet("c")&"</td></tr>")
		
	RecSet.MoveNext
	Loop
			
	End If
```

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

## #77 — Peter S, 2008-09-22T20:43Z

Samma fel?

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

## #78 — oskars, 2008-09-22T20:44Z

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 
\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error in FROM clause. 

test.asp, line 187 

Sorry asså :/

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

## #79 — Peter S, 2008-09-22T21:05Z

```
SELECT dt.sd, max(dt.c)
  FROM (   
  SELECT d.Startdatum as sd
     , ( SELECT COUNT(*)+1 
           FROM allingsas 
          WHERE ((Starttid > d.Starttid AND Starttid < d.Sluttid) 
             OR (Sluttid > d.Starttid AND ((Sluttid < d.Sluttid AND Slutdatum = d.Startdatum) 
             OR (Sluttid > d.Sluttid AND Slutdatum < d.Slutdatum)))) AND Startdatum = d.Startdatum) as c 
  FROM allingsas d 
 WHERE Weekday(d.Startdatum) = 3 
   AND Starttid > '2300' 
   AND Sluttid < '0100'
       ) dt
GROUP
    BY dt.sd
```

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

## #80 — oskars, 2008-09-22T21:21Z

Fantastiskt!

Jag fick först att "&RecSet("c")&" inte hittades... men då ändrade jag det till "&RecSet(1)&"... och det verkar ju fungera? :) Tänk att jag klarar nått själv så här sent.

Kunde du se om resultatet verkligen stämmer med datan?
Jag tycker det ser korrekt ut...

Jag menar. SKA den här frågan vara korrekt? Och visar siffrorna ändå fel, är det datan det är fel på då?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/174069-krånglig-fråga-med-klockslag/page4  
Föregående sida: https://www.webforum.nu/amne/databaser-sql/174069-krånglig-fråga-med-klockslag/page3.md  
Nästa sida: https://www.webforum.nu/amne/databaser-sql/174069-krånglig-fråga-med-klockslag/page5.md
