---
title: "Ta bort varannan rad ur resultatet?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/177287-ta-bort-varannan-rad-ur-resultatet"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Compusa"
published: "2009-03-04T15:27:55.000Z"
updated: "2009-03-04T15:52:38.000Z"
replies: 2
views: 558
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/177287-ta-bort-varannan-rad-ur-resultatet"
---

# Ta bort varannan rad ur resultatet?

## #1 — Compusa, 2009-03-04T15:27Z

DBMS: SQL Server 2005 (gärna stöd för 2000)

Så här ser min SQL-fråga ut:

```
SELECT UppdragStatusTypId, id
FROM UppdragsStatus US
WHERE EXISTS
(
	SELECT UppdragsId, UppdragStatusTypId, Datum, UppdateradDatumTid
	FROM uppdragsstatus
	GROUP BY UppdragsId, UppdragStatusTypId, Datum, UppdateradDatumTid
	having count(*) > 1 
	AND Datum IS NOT NULL
	AND UppdragsId = US.UppdragsId
	AND UppdragStatusTypId = US.UppdragStatusTypId
	AND Datum = US.Datum
	AND UppdateradDatumTid = US.UppdateradDatumTid
)
```

Får ut resultat från en SQL fråga som ser ut så här

   StatusId    Id
1\.   5	          21154
2\.   5	          21730
3\.   6	          21155
4\.   6	          21731
5\.   7	          21156
6\.   7   	  21732

Skulle på något sätt bara vilja få ut raderna 2, 4 och 6, då de är dubbletter som jag ska ta bort. Men jag vill inte att min sql-fråga ska ta bort raderna 1,  3 och 5... Det sambandet som finns är att rad 2, 4 och 6 har högre id än sina orginal (1, 3, 5).

Är det möjligt?

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

## #2 — Peter S, 2009-03-04T15:42Z

```
SELECT UppdragStatusTypId, max(id)
FROM UppdragsStatus US
WHERE EXISTS
(
	SELECT UppdragsId, UppdragStatusTypId, Datum, UppdateradDatumTid
	FROM uppdragsstatus
	GROUP BY UppdragsId, UppdragStatusTypId, Datum, UppdateradDatumTid
	having count(*) > 1 
	AND Datum IS NOT NULL
	AND UppdragsId = US.UppdragsId
	AND UppdragStatusTypId = US.UppdragStatusTypId
	AND Datum = US.Datum
	AND UppdateradDatumTid = US.UppdateradDatumTid
)
group by UppdragStatusTypId
```

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

## #3 — Compusa, 2009-03-04T15:52Z

Så där skulle det se ut ja! Var och nosade på "max" men fick det inte att fungera. Stort tack!

Naturligtvis hann jag lösa det på ett annat vis också . Har inte bestämt mig ännu vilken jag ska köra på men det ger hur som helst samma resultat ;)

> SELECT US2.UppdragStatusTypId, US2.Id
> FROM uppdragsstatus US1
> INNER JOIN uppdragsstatus US2 ON 
> 	US1.UppdragsId = US2.UppdragsId
> 	AND US1.UppdragStatusTypId = US2.UppdragStatusTypId
> 	AND US1.Datum = US2.Datum
> 	AND US1.UppdateradDatumTid = US2.UppdateradDatumTid
> 	AND (US1.Id \<\> US2.Id AND US1.Id \< US2.Id)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/177287-ta-bort-varannan-rad-ur-resultatet
