---
title: "MySQL räkningsfel???"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/138131-mysql-räkningsfel"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "klovstedt"
published: "2005-11-23T16:51:57.000Z"
updated: "2005-11-23T18:46:15.000Z"
replies: 4
views: 355
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/138131-mysql-räkningsfel"
---

# MySQL räkningsfel???

## #1 — klovstedt, 2005-11-23T16:51Z

Följande pseudo skrivs in:

SELECT \*
FROM wlanlog AS table1, wlanlog AS table2
WHERE table1.timestamp BETWEEN begin AND end
AND table1.timestamp = ( table2.timestamp +300 ) AND table1.ap != table2.ap AND table1.user = table2.user

Vilket resulterar i att de olikheter som man får fram läggs bredvid varandra, inte radvis alltså. Sker någon mystisk JOIN då? Eller är det jag som e puckad? :)

Jag vill ha radvis kanske ska tilläggas.

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

## #2 — LarsG, 2005-11-23T17:04Z

Jag förstår inte vad du menar.

Exemplifiera med datainnehåll och förväntat resultat.

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

## #3 — klovstedt, 2005-11-23T17:18Z

mer förklarat...

wlanlog
\----------
timestamp             user              AP 
1130900100  0000000008E3  000B85181E20 
1130900400  0000000008E3  000B851AE500 
1130900701  0000000008E3  000B85181E20 

Kör:
SELECT count( \* )
FROM wlanlog AS table1, wlanlog AS table2
WHERE table1.timestamp BETWEEN 1130900100 AND 1130900701 
AND table2.timestamp = ( table1.timestamp +300 ) 
AND table1.ap != table2.ap 
AND table1.user = table2.user

Resulterar i:
count( \* )
1

Vill ha (eftersom användaren roamar 2 ggr):
count( \* )
2

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

## #4 — LarsG, 2005-11-23T17:45Z

Tja, det gjorde väl inte saken klarare. De rader som du visar i ditt resultat finns ju inte med i det första utdraget.

```
select timestamp,ap,user
  from wanlog as q1
 where exists 
   (select *
      from wanlog as q2
     where q1.timestamp + 300 = q2.timestamp
       and q1.user = q2.user
       and q1.ap <> q2.ap)
union
select timestamp,ap,user
  from wanlog as q1
 where exists 
   (select *
      from wanlog as q2
     where q1.timestamp - 300 = q2.timestamp
       and q1.user = q2.user
       and q1.ap <> q2.ap)
```

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

## #5 — klovstedt, 2005-11-23T18:46Z

ändringar

har nu ändrat i mitt föregående inlägg... var kanske lite korkat av mig att inte göra det så klart jag kunde :) men nu ska det framgå ganska så tydligt iaf... var lite svårt att exemplifiera bra när vi jobbar med en ganska stor databas (dessutom när man inte har total kontroll på MySQL såsom du)

tackar för all hjälp btw...

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/138131-mysql-räkningsfel
