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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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