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.
7 svar · 399 visningar · startad av ptype
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!
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.
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
tack!! !!
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!!
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
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?
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.