---
title: "Datum, numrera, gruppera"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/86641-datum-numrera-gruppera"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ptype"
published: "2003-09-22T12:38:41.000Z"
updated: "2003-09-24T20:57:36.000Z"
replies: 7
views: 399
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/86641-datum-numrera-gruppera"
---

# Datum, numrera, gruppera

## #1 — ptype, 2003-09-22T12:38Z

Hej!

Jag har ett visst antal händelser i en tabell, alla med varsitt datum. Det skulle vara bra om man kunde få en numrering för datumet, typ så att första datumet som finns blir dag 1 och efterföljande dag blir dag 2 etc.

Ex:

2001-01-01     1
2001-01-03     3
2001-01-05     5

Sedan en ytterligare fråga, om ovanstående går att göra, går det sedan att t.ex. gruppera dem veckovis? alltså att dag 1-7 är vecka 1 osv??

Tacksam för svar!

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

## #2 — Engine^, 2003-09-22T13:17Z

Första frågan är den enkla, så jag väljer att svara på den ;)

```
SELECT [i]datumet[/i], Day([i]datumet[/i]) FROM [i]tabellen[/i]
```

Andra biten känns betydligt klurigare att lösa med SQL och jag kan inte komma på något där.

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

## #3 — LarsG, 2003-09-22T13:51Z

Det är nog inte riktigt så enkelt.

```
SELECT datumet, 
datediff(day,(select min(datumet) from t) ,datumet) + 1 as days
FROM t
```

2:an

```
select (datediff(day,(select min(datumet) from t) / 7) + 1,
count(*) from t
group by (datediff(day,(select min(datumet) from t) / 7) + 1
```

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

## #4 — ptype, 2003-09-22T14:16Z

tack!! !!

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

## #5 — ptype, 2003-09-22T14:32Z

En fortsatt fråga LarsG

Har nu

```
SELECT     intAntal, datDate, DATEDIFF(day,
                          (SELECT     MIN(datDate)
                            FROM          tblLagerTrans_ltr), datDate) + 1 AS days
FROM         dbo.tblLagerTrans_ltr
WHERE     (intId_art = '284')
ORDER BY days
```

Kan man utöka denna fråga så jag får summan av intAntal för en viss days? (kan alltså finnas flera poster för samma days)

Är dig evigt tacksam!!

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

## #6 — ptype, 2003-09-22T14:48Z

yeah !!

```
SELECT     SUM(intAntal) AS Expr2, days AS Expr1
FROM         (SELECT     intAntal, datDate, DATEDIFF(day,
                                                  (SELECT     MIN(datDate)
                                                    FROM          tblLagerTrans_ltr), datDate) + 1 AS days
                       FROM          dbo.tblLagerTrans_ltr
                       WHERE      (intId_art = '284')) DERIVEDTBL
GROUP BY days
ORDER BY days
```

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

## #7 — Engine^, 2003-09-23T00:07Z

Följdfråga: nu begriper jag varken svaret på första eller andra frågan - varför väljs

```
DateDiff(day, SELECT Min(datumet) FROM t, [i]datumet[/i]) + 1
```

 om det ska bli
2001-01-01 1 
2001-01-03 3 
2001-01-05 5 

?

Var tanken att det skulle bli
2001-01-01 1 
2001-01-03 2
2001-01-05 3

eller har jag frågan om bakhanden?

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

## #8 — ptype, 2003-09-24T20:57Z

Det ska bli
2001-01-01 1 
2001-01-03 3 
2001-01-05 5 

vilket det ju blir med SQL-syntaxen angiven, därför att man räknar ut skillnaden i dagar sedan den första dagen (2001-01-01) och postens datum.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/86641-datum-numrera-gruppera
