---
title: "Problem med SQL/rapporter i access 2000"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/116111-problem-med-sql-rapporter-i-access-2000"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Andy_K"
published: "2004-11-17T14:53:00.000Z"
updated: "2004-11-19T14:01:43.000Z"
replies: 4
views: 308
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/116111-problem-med-sql-rapporter-i-access-2000"
---

# Problem med SQL/rapporter i access 2000

## #1 — Andy_K, 2004-11-17T14:53Z

Info: Jag använder mig av Access 2000 och vill göra en rapport från en databas med flera tabeller.

Problemet: Jag vill göra en rapport som visar information från flera olika tabeller. I dom flesta av tabellerna så kan personen som det är frågan bara finnas med 1 gång eller så finns han inte med alls. Att ta fram detta är inga problem. 

Men att ta fram informationen ifrån tabeller där personen kan vara med flera gånger resulterar i att den anställde visas flera gånger(inte så konstigt, har använt mig av LEFT JOIN). Men hur gör jag för att detta inte ska ske? Finns det någon funktion i själva "rapportläget" som jag kan ta hjälp av eller går det att lösa rent SQL-mässigt?

Tacksam för snabba svar :h

Hoppas att jag postat denna fråga i rätt kategori...  :r 

För mer info skrik bara till  :e

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

## #2 — LarsG, 2004-11-17T17:40Z

Du får lägga till villkor så att bara en av de möjliga raderna kommer med

T.ex. om du har en tabell (t) med kolumnerna A och B

A B
\----
1 'a'
1 'b'
2 'c'
2 'd'

Du kan t.ex. välja att för varje unikt värde i A ta det största värdet i B

```
select * from t as q
where b in (select max(b) from t where a = q.a)
```

Det finns inget sätt att säga: ge mig en post, det kvittar vilken.

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

## #3 — Andy_K, 2004-11-18T06:55Z

Tack för de snabba svaret!

Okej jag förstår hur du menar, men jag vill ha med alla poster för den personen. Det är de som är de stora problemet.

Bifogar lite kod iaf.

```
SELECT personal.anstNr AS personal_anstNr, personal.fnamn, personal.enamn, personal.fodDag,
 personal.avdelning, personal.anstDat, personal.nuvBef, personal.skift, befattning.bef, 
befattning.avd, befattning.skift, befattning.datum
FROM personal LEFT JOIN befattning ON personal.anstNr = befattning.anstNr
ORDER BY personal.anstNr;
```

Det jag har gjort hittills är att jag har använt mig av LEFT JOIN rakt igenom(klistrade bara in från en tabell som exempel). Vet även att detta inte går.
Jag har cirka 20 tabeller varav tre kan innehålla flera poster om personen. Vet ej om det går att lösa med SQL.

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

## #4 — LarsG, 2004-11-18T19:26Z

Det går.

Tex om det är befattning som kan innehålla flera poster och du vill ha den som har senaste datum

```
SELECT personal.anstNr AS personal_anstNr, 
       personal.fnamn, 
       personal.enamn, 
       personal.fodDag,
       personal.avdelning, 
       personal.anstDat, 
       personal.nuvBef, 
       personal.skift, 
       dt.bef, 
       dt.avd, 
       dt.skift, 
       dt.datum 
  FROM personal LEFT JOIN 
    (select bef,
            avd, 
            skift, 
            datum
      from befattning b
   where datum = (select max(datum)
    from befattning
    where anstnr = b.anstnr)) dt
 ON personal.anstNr = dt.anstNr
```

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

## #5 — Andy_K, 2004-11-19T14:01Z

Men jag vill komma åt \_ALLA\_ fält i befattning, men endast en gång ifrån personal.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/116111-problem-med-sql-rapporter-i-access-2000
