---
title: "SQL DISTINCT ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/185396-sql-distinct"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Sjodahl"
published: "2010-11-28T14:48:51.000Z"
updated: "2010-11-30T15:25:12.000Z"
replies: 8
views: 851
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/185396-sql-distinct"
---

# SQL DISTINCT ?

## #1 — Sjodahl, 2010-11-28T14:48Z

Skulle vilja ha en typ DISTINCT på första kolumnen, och sedan räkna hur många Status Id det finns för varje.

ProblemId	StatusId	StartDate	StopDate
3	2	2010-11-11 06:53:45.767	NULL
4	1	2010-11-11 06:46:05.893	NULL
5	1	2010-11-16 21:04:17.380	NULL
6	4	2010-11-11 07:08:23.060	NULL
7	1	2010-11-11 09:07:37.303	NULL
15	1	2010-11-23 06:26:37.703	2010-11-23 06:28:40.363
15	2	2010-11-23 06:28:40.350	2010-11-23 06:30:16.743
15	3	2010-11-23 06:30:16.727	2010-11-25 06:26:49.897
15	4	2010-11-25 06:26:49.867	NULL
16	1	2010-11-23 06:31:24.807	2010-11-23 06:31:58.433
16	2	2010-11-23 06:31:58.433	2010-11-23 06:34:07.030
16	3	2010-11-23 06:34:07.017	2010-11-23 06:37:04.413
16	4	2010-11-23 06:37:04.397	NULL
17	1	2010-11-23 17:37:30.147	2010-11-23 17:38:14.690
17	3	2010-11-23 17:38:14.630	NULL

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

## #2 — Peter S, 2010-11-28T15:12Z

```
select projectid, count(*) from tabell group by projectid
```

Vill du ha med startdate och stopdate så måste du bestämma vilken rads start- och stoppdatum i varje grupp som skall visas, t.ex. den rad som har det högsta statusvärdet.

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

## #3 — Sjodahl, 2010-11-28T15:14Z

Det jag kommer att gör är att skicka in 2st parametrar @StartDate, @StopDate

Kommer vilja ha ut hur många det är av varje StatusId för just det intervallet, men MAX 1st status för varje ProjectId
Så den rad som jag vill skall visas är den med senast StopDate eller om StopDate == NULL.

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

## #4 — Sjodahl, 2010-11-29T12:19Z

Hur bestämmer jag vilken rad som skall visas? Vill den med högst StartDate skall visas bara.

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

## #5 — LarsG, 2010-11-29T12:22Z

```
select ProblemId, 
         StatusId, 
         StartDate, 
         StopDate
  from t as q
 where stopDate is null
    or stopDate in (select max(stopDate)
                           from t
                          where t.statusid = q.statusid)
```

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

## #6 — Sjodahl, 2010-11-29T17:12Z

Tackar, men får inte riktigt ihop det vill även baka in 2st parametrar där resultet skall ligga emellan start och stopdate.

```
select ProblemId, 
         StatusId, 
         StartDate, 
         StopDate
from dbo.tblProblemLog as q
where	ProjectId=151 AND
		(StartDate <= '2010-11-28' AND (StopDate >= '2010-11-22' OR StopDate IS NULL
		or stopDate in (select max(stopDate)
                           from dbo.tblProblemLog
                          where dbo.tblProblemLog.statusid = q.statusid)))
```

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

## #7 — Sjodahl, 2010-11-30T12:46Z

Med ovanstående får jag med lite mer än jag borde.

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

## #8 — GunnarD, 2010-11-30T15:06Z

Skulle inte denna fungera?

```
select ProblemId, StatusId, max(StopDate) 
from wf_sjodahl 
where StartDate <= '2010-11-28' AND (StopDate >= '2010-11-22' OR StopDate IS NULL ) 
group by ProblemId;
```

/red: lite förvillande info du ger :) Ena stunden den med senaste stopdate nästa den med högsta startdate, och nu i senaste exemplet har du med ProjectId, var kommer den ifrån.

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

## #9 — Sjodahl, 2010-11-30T15:25Z

Hej,

Det är så sant,
För att försöka förtydliga det så är mina in-parametrar är:

@ProjectId
@StartDate
@StopDate.

Det resultat jag är ute efter är följande:
Antalet StatusId för varje status mellan tids parametrarna @StartDate och @StopDate och som har ett ProjektId enligt @ProjectId.

Men för varje ProblemId så skall den bara ta med endast EN status i den perioden och det skall vara den senaste: Högst StopDate eller om StopDate = null så är den störst.

StatusId, Antal
1, 34
2, 3
3, 32
4, 21

 :OO

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/185396-sql-distinct
