---
title: "Visa endast en post"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/144205-visa-endast-en-post"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "devotion"
published: "2006-03-19T18:15:31.000Z"
updated: "2006-03-30T07:07:58.000Z"
replies: 17
views: 999
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/144205-visa-endast-en-post"
---

# Visa endast en post

## #1 — devotion, 2006-03-19T18:15Z

Hej!

Har följande kod:

```
		sSQL = 	"SELECT tblTask.Id, tblTime.Id, tblTask.Task, tblTask.CustomerName, tblTime.StartDate, tblTime.StopDate, tblTime.User, tblTask.Status " &_
				"FROM tblTask Inner JOIN tblTime ON tblTask.Id = tblTime.TaskId " &_
				"Where tblTask.Status = 3 And tbltime.startDate >= dateadd('w',-3,now())"
```

Tanken är att visa var företagets olika montörer befinner sig baserat på de arbetstider de registrerat de tre sista dagarna.

Om Olle arbetat så här:

Måndag 2006-03-10 07:00 - 16:00 Pelles Plåt
Tisdag 2006-03-10 12:30 - 16:00 Pelles plåt

Visas följande i nuläget:

Pelles Plåt
Pelles Plåt

Jag vill att det ska visas så här:

Pelles Plåt

Dvs är en montör på samma uppdrag inom 3-dagarsspannet skall det företaget bara visas en gång!

Hmmm

Någon som fattar...  ;)  

//Henrik

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

## #2 — thojo280, 2006-03-19T19:20Z

Lägg till ett GROUP-BY uttryck (GROUP BY tblTime.User).

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

## #3 — devotion, 2006-03-19T19:45Z

Hej!
Gjorde det men...

```
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'Id'. 

/frames/mainFrame.asp, rad 66
```

//Henrik

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

## #4 — thojo280, 2006-03-19T19:54Z

Ta bort några visningsfält....

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

## #5 — Melea, 2006-03-19T19:54Z

Borde inte något följande fungera?

```
SELECT 
   tblTask.Id, 
   tblTime.Id, 
   DISTINCT(tblTask.Task) as Task, 
   tblTask.CustomerName, 
   tblTime.StartDate, 
   tblTime.StopDate, 
   tblTime.User, 
   tblTask.Status
FROM 
   tblTask 
INNER JOIN
   tblTime ON tblTask.Id = tblTime.TaskId
WHERE
   tblTask.Status = 3 And 
   tbltime.startDate >= dateadd('w',-3,now())
GROUP BY
   tblTask.Id, 
   tblTime.Id, 
   tblTask.CustomerName, 
   tblTime.StartDate, 
   tblTime.StopDate, 
   tblTime.User, 
   tblTask.Status
```

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

## #6 — devotion, 2006-03-19T20:34Z

hmmm....  :(  

Provade:

```
		sSQL = 	"SELECT tblTask.Id, tblTime.taskId, tblTask.Task, tblTask.CustomerName, tblTime.StartDate, tblTime.StopDate, tblTime.User, tblTask.Status " &_
				"FROM tblTask Inner JOIN tblTime ON tblTask.Id = tblTime.TaskId " &_
				"Where tblTask.Status = 3 And tbltime.startDate >= dateadd('w',-3,now()) " &_
				"GROUP BY tblTime.User, tblTask.Id, tblTime.Id, tblTask.CustomerName, tblTime.StartDate, tblTime.StopDate, tblTime.User, tblTask.Status"
```

och fick

```
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'taskId'. 

/frames/mainFrame.asp, rad 66
```

Vad gör jag för fel?

//Henrik

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

## #7 — devotion, 2006-03-19T20:38Z

:)   

Provade att lägga samma urval i Order by som det som ligger i SELECT, och det verkar funka!

dvs

```
		sSQL = 	"SELECT tblTask.Id, tblTime.taskId, tblTask.Task, tblTask.CustomerName, tblTime.StartDate, tblTime.StopDate, tblTime.User, tblTask.Status " &_
				"FROM tblTask Inner JOIN tblTime ON tblTask.Id = tblTime.TaskId " &_
				"Where tblTask.Status = 3 And tbltime.startDate >= dateadd('w',-3,now()) " &_
				"GROUP BY tblTask.Id, tblTime.taskId, tblTask.Task, tblTask.CustomerName, tblTime.StartDate, tblTime.StopDate, tblTime.User, tblTask.Status"
```

Är det så man måste göra eller??

//Mvh
Henrik

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

## #8 — devotion, 2006-03-25T22:30Z

Hmm, trodde jag fått det att fungera med ovanstående kod...

Men det blir ändå "dubletter" om man varit på samma jobb flera gånger inom intervallet. Vill ju bara ha en träff så att säga..

Någon??

//Henrik

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

## #9 — Kent Clarke, 2006-03-28T18:41Z

Prova med DISTINCT.

Dvs, "SELECT DISTINCT tblTask.Id, tblTime.taskId, tblTask.Task osv"

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

## #10 — LarsG, 2006-03-28T18:53Z

Du får alltså samma värden för alla kolumner utom tblTime.StartDate, tblTime.StopDate? 

Vilken av dessa poster vill du ha?

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

## #11 — devotion, 2006-03-28T19:18Z

Hmm, jag förstår inte riktigt....  :(  

Men jag vill ha en fråga som gör det här:
<http://www.webforum.nu/showthread.php?p=1171196#post1171196>

Mvh
Henrik

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

## #12 — devotion, 2006-03-28T19:21Z

Om jag fattat rätt så är det:

```
tbltime.startDate
```

Jag vill ha...

Men det är inte säkert jag fattat rätt

//Henrik

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

## #13 — LarsG, 2006-03-28T19:32Z

I det exemplet finns det bara en kolumn så det hjälper inte. Visa vilket resultat du får nu och vilket du vill ha.

T.ex. om du får

A B date
\--------
1 1 2006-04-23
1 1 2006-04-08

så vill du kanske ha det äldsta datumvärdet för varje kombination av A och B. Det kan bara du tala om.

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

## #14 — devotion, 2006-03-29T07:09Z

Hmmmm, då borde det ju räcka med:

```
sSQL = 	"SELECT tblTask.CustomerName, tblTime.User " &_
				"FROM tblTask Inner JOIN tblTime ON tblTask.Id = tblTime.TaskId " &_
				"Where tblTask.Status = 3 And tbltime.startDate >= dateadd('w',-3,now())"
```

Eftersom det enda jag vill visa är montör och kund....

//Henrik

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

## #15 — devotion, 2006-03-29T11:59Z

LarsG! Är jag på rätt spår?

//Henrik

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

## #16 — devotion, 2006-03-30T06:59Z

Hmmm....

Med ovanstående SQL får jag detta resultat:

```
Thomas - SECURITAS SYSTEM AB  
Thomas - SECURITAS SYSTEM AB  
Thomas - BYGGN.FIRMA Claesson&Andersen HB  
Thomas - BYGGN.FIRMA Claesson&Andersen HB  
Thomas - KARLSKRONA LÅSSERVICE AB  
Thomas - VÄRMEINSTALLATIONER I JÄMJÖ AB  
Per - NVS INSTALLATION AB  
Thomas - JOHN SVENSSON BYGGNADSFIRMA AB  
Thomas - JOHN SVENSSON BYGGNADSFIRMA AB  
Thomas - Lars-Erik Persson  
Jörgen - SECURITAS SYSTEM AB  
Niclas - SECURITAS SYSTEM AB  
Thomas - VÄRMEINSTALLATIONER I JÄMJÖ AB  
Thomas - TAC
```

Hur gör jag för att inte visa "dubletterna"?

Snälla!!!

//Henrik

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

## #17 — @nders, 2006-03-30T07:01Z

```
SELECT DISTINCT...
```

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

## #18 — devotion, 2006-03-30T07:07Z

Tack @nders! Det verkar ju fungera!

Nu får jag:

```
Thomas - BYGGN.FIRMA Claesson&Andersen HB  
Thomas - JOHN SVENSSON BYGGNADSFIRMA AB  
Thomas - KARLSKRONA LÅSSERVICE AB  
Thomas - Lars-Erik Persson  
Per - NVS INSTALLATION AB  
Jörgen - SECURITAS SYSTEM AB  
Niclas - SECURITAS SYSTEM AB  
Thomas - SECURITAS SYSTEM AB  
Thomas - TAC  
Thomas - VÄRMEINSTALLATIONER I JÄMJÖ AB
```

Och det verkar ju vara rätt..

Med följande kod:

```
		sSQL = 	"SELECT DISTINCT tblTask.CustomerName, tblTime.User " &_
				"FROM tblTask Inner JOIN tblTime ON tblTask.Id = tblTime.TaskId " &_
				"Where tblTask.Status = 3 And tbltime.startDate >= dateadd('w',-4,now())"
```

Mvh
Henrik

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/144205-visa-endast-en-post
