---
title: "Nästan dubbletter, inte lösbart med Group?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/183551-nästan-dubbletter-inte-lösbart-med-group"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Johnsen"
published: "2010-05-20T11:55:52.000Z"
updated: "2010-05-21T07:20:11.000Z"
replies: 3
views: 486
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/183551-nästan-dubbletter-inte-lösbart-med-group"
---

# Nästan dubbletter, inte lösbart med Group?

## #1 — Johnsen, 2010-05-20T11:55Z

Jag ställer en SQL-fråga till en csv-fil där samma föremål kan återfinnas vid olika datum och/eller tider.
Jag vill bara visa den, i datum/tid, senaste förekomsten.

csv-filen:

```
Place;Product;Item;Date;Time;Reason
"A12";"box";45532;"2010-05-19";1948;"none"
"A12";"box";45532;"2010-05-18";2015;"late"
"B01";"box";62123;"2010-05-19";1950;"noenone"
"A12";"box";72345;"2010-05-19";2031;"space"
```

Nyckeln för dubbletter är Place-Product-Item

Om jag ställer frågan:

```
SELECT * FROM csv WHERE Place='A12' ORDER BY Place, Product, Item
```

Får jag detta:

```
"A12";"box";45532;"2010-05-18";2015;"late"
"A12";"box";45532;"2010-05-19";1948;"none"
"A12";"box";72345;"2010-05-19";2031;"space"
```

Önskat resultat:

```
"A12";"box";45532;"2010-05-19";1948;"none"
"A12";"box";72345;"2010-05-19";2031;"space"
```

Några förslag?

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

## #2 — SPiN, 2010-05-20T14:02Z

Hur menar du inte lösbart med group? Group by ska ju fungera;

```
select
    *,
    max([Date])
from
    csv
where
    Place='A12'
group by
    Item
order by
    Place, Product, Item
```

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

## #3 — Compusa, 2010-05-20T14:15Z

SPIN, din fråga fungerar inte eftersom du försöker selektera element som du inte har med i din gruppering. Vidare så är det kanske inte tillräckligt att bara köra max på datum, eftersom det kanske kan förekomma flera på samma datum men vid olika klockslag?

Mitt förslag:

```
SELECT 
    Place, Product, Item, [DateTime] = SUBSTRING(MAX([Date] + ':' + [Time]), 1, 10), 
    [Time] = 
    (
        SELECT TOP 1 
            C.[Time] 
        FROM 
            csv C
        WHERE 
           C.Item = Item 
        ORDER BY 
            C.[Date] DESC, C.[Time] DESC
    ),
    Reason = 
    (
        SELECT TOP 1 
            C.Reason 
        FROM 
            csv C 
        WHERE 
            C.Item = Item 
        ORDER BY 
            C.[Date] DESC, C.[Time] DESC
    )
FROM 
    csv
GROUP BY 
    Place, Product, Item
HAVING 
    Place='A12'
ORDER BY Place, Product, Item
```

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

## #4 — Johnsen, 2010-05-21T07:20Z

Tack för den lösningen

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/183551-nästan-dubbletter-inte-lösbart-med-group
