---
title: "if-sats (och lite sql)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/131287-if-sats-och-lite-sql"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2005-07-12T04:56:24.000Z"
updated: "2005-07-12T15:21:15.000Z"
replies: 9
views: 360
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/asp/131287-if-sats-och-lite-sql"
---

# if-sats (och lite sql)

## #1 — devotion, 2005-07-12T04:56Z

:e 
Hej!
Jag har en tabell där datum och tid sätts varje gång en användare synkroniserar sin handdator.... (access)

Det finns 7 användare i tabellen.

Jag vill att om en användare inte synkroniserat sin handdator på exempelvis 72 timmar skall följande skrivas ut:

**Pelle har inte synkroniserat på 72 timmar!**

Någon som kan ge mig lite starthjälp??

Mvh

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

## #2 — m_soderlund, 2005-07-12T05:13Z

```
if cInt(DateDiff("H", datum_fran_databastabellen, now()))>72 then
 response.write "Användare x ej synkroniserat på 72 timmar!"
end if
```

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

## #3 — devotion, 2005-07-12T05:25Z

Tack!

snabba svar... ;) 

Och innan if-satsen är det bara att skapa ett recordset där användarna loopas ut?

Mvh

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

## #4 — @nders, 2005-07-12T05:55Z

> **devotion skrev:**
>
> Och innan if-satsen är det bara att skapa ett recordset där användarna loopas ut?

Japp.

Annars kan du ställa villkoret direkt i SQL-frågan och bara hämta ut de poster du är intresserad av. Datediff() fungerar fint och på liknande sätt i Jet SQL.

Mvh

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

## #5 — devotion, 2005-07-12T06:33Z

Det kanske är smidigare att ställa villkoret direkt i sql-frågan.... Då loopas ju bara de användarna ut som uppfyller villkoret: \>72 timmar ut...

Blir det så här då?

```
SELECT tblUser.userName, tblUser.syncDate
FROM tblUser
WHERE dateDiff("H", tblUser.SyncDate, syncDate, now()) > 72
ORDER BY timeSinceSync
```

MEN
Hur får jag ihop asp-delarna i sql-strängen.... Det var inte lätt

Sedan vore det ju bra att få ut värdet på dateDiff så man kan sortera på den som har flest antal timmar från synkning kommer överst.

Och om villkoret uppfylls( \> 72 timmar) skulle det stå det faktiska antalet...

Dvs

**Pelle har inte synkat på 89 timmar**

Tacksam för hjälp....

Mvh

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

## #6 — @nders, 2005-07-12T06:39Z

> **devotion skrev:**
>
> Blir det så här då?

Jag hade nog provat något sånt härnt:

```
SELECT tblUser.userName, tblUser.syncDate, dateDiff('h', tblUser.SyncDate, now()) AS fooDiff
FROM tblUser
WHERE dateDiff('h', tblUser.SyncDate, now()) > 72
ORDER BY tblSyncDate
```

> Hur får jag ihop asp-delarna i sql-strängen

Vad är det för asp-delar du vill ha in?

> Sedan vore det ju bra att få ut värdet på dateDiff så man kan sortera på den som har flest antal timmar från synkning kommer överst.

Du får ut värdet, men enklast är ju att bara sortera på tblSyncDate, precis som du gjort. Det borde ge samma resultat.

(Det är förresten onödigt att du markerar alla fältnamn med tabell enl. *tabell.fältnamn*, när det bara handlar om en tabell.)

Edit: där du skrivit tblSyncDate förresten, det ska väl bara vara *SyncDate*?

Mvh

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

## #7 — devotion, 2005-07-12T07:16Z

> Vad är det för asp-delar du vill ha in?

 

Tänkte om jag behövde använda &-tecknet (som har et fint namn som jag inte kommer på nu.....) :r 

> Edit: där du skrivit tblSyncDate förresten, det ska väl bara vara SyncDate?

 

Jag såg att jag skrivit fel där....

Det är ändrat....

Nu skulle väl sorteringen vara på fooDiff enligt ditt exempel...

Mvh

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

## #8 — @nders, 2005-07-12T07:18Z

> Tänkte om jag behövde använda &-tecknet (som har et fint namn som jag inte kommer på nu.....)

Ampersand är nog ordet du letar efter.

> Nu skulle väl sorteringen vara på fooDiff enligt ditt exempel...

Ja, om du hade använt något annat än Access. Antingen får du lägga hela datediff-uttrycket i order by, eller så sorterar du på SyncDate, vilket jag fortfarande påstår ger samma resultat.

Mvh

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

## #9 — devotion, 2005-07-12T07:33Z

> Ja, om du hade använt något annat än Access. Antingen får du lägga hela datediff-uttrycket i order by, eller så sorterar du på SyncDate, vilket jag fortfarande påstår ger samma resultat.

 

Just det ja...Smidigt... :p 

Ska testa....

Mvh

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

## #10 — devotion, 2005-07-12T15:21Z

:h 
Kanske blev en mer sql-fråga än asp-fråga... sorry!

Så här blev resultatet i a f:

```
strSQL = 	"SELECT tblUsers.Name, tblUsers.LastSyncDate, dateDiff('h', tblUsers.LastSyncDate, now()) AS syncDiff " &_
			"FROM tblUsers " &_
			"WHERE dateDiff('h', tblUsers.LastSyncDate, now()) > 72 AND NOT tblUsers.Name = 'Janne'" &_
			"ORDER BY dateDiff('h', tblUsers.LastSyncDate, now()) DESC"
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/131287-if-sats-och-lite-sql
