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
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?