Avatar billede killerbob Nybegynder
22. maj 2006 - 08:33 Der er 3 kommentarer

Kringlet SQL - hvordan gør man dette

Hej

Har tabel med data der ser ud som nogenlunde sådan

Dato-tid              GRP  ID      GlobalID
20-05-2006 10.52.46    12  1725    d123
20-05-2006 10.53.22    14  1835    d129
20-05-2006 10.53.35    13  1921    d168
21-05-2006 08.25.12    15  1725    d123
21-05-2006 08.25.53    15  1625    d123

Det jeg gerne vil have er ANTAL records hvor GlobalID er ens men kun inden for 5 min og kun når også GRP er ens... I ovennævnte ex vil geg gerne hav returneret Grp: 15 - "2 stk"  fordi de sidste 2 rækker har ens GlobalID inden for 5 min

Kan man det ?
Avatar billede jensen363 Forsker
22. maj 2006 - 08:57 #1
Virker dette ?

SELECT Format([Dato-tid],"dd/mm/yyyy") AS Dato, Tabel.GlobalID, Count(Tabel.GlobalID) AS Antal, Format((Last([Tabel]![Dato-tid])-First([Tabel]![Dato-tid])),"hh:nn:ss") AS Tid
FROM Tabel
GROUP BY Format([Dato-tid],"dd/mm/yyyy"), Tabel.GlobalID
HAVING (((Count(Tabel.GlobalID))>=2) AND ((Format((Last([Tabel]![Dato-tid])-First([Tabel]![Dato-tid])),"hh:nn:ss"))<"00:05:00"));
Avatar billede jesper2009 Nybegynder
22. maj 2006 - 13:22 #2
Hvad med
select count(t1.GlobalID) from <Tabel> as t1, <Tabel> as t2 where t1.GlobalID=t2.GlobalID and t1.GRP=t2.GRP and EXTRACT(MINUTE FROM t1.Dato-tid) - EXTRACT(MINUTE FROM t2.Dato-tid) between 5 and -5;

Hilsen Jesper
Avatar billede jesper2009 Nybegynder
23. maj 2006 - 14:40 #3
.. og så skal man nok lige huske at tjekke at måned, dag, år og time er ens:

select count(t1.GlobalID) from <Tabel> as t1, <Tabel> as t2 where t1.GlobalID=t2.GlobalID and t1.GRP=t2.GRP and EXTRACT(YEAR FROM t1.Dato-tid)=EXTRACT(YEAR FROM t2.Dato-tid) and ... and EXTRACT(MINUTE FROM t1.Dato-tid) - EXTRACT(MINUTE FROM t2.Dato-tid) between 5 and -5;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester