/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
SQL2 og overlap..?
Fra : Thomas Sørensen


Dato : 15-02-04 22:23

Jeg har et kontkret problem med udviklingen af en stored procedure i MS SQL
Server 2000. Jeg skal bruge en funktion, som kan returnere "overlaptiden" af
to tidsintervaller der overlapper hinanden. Efter at have kæmpet med opgaven
igennem længere tid, fandt jeg ud af (via søgen på www) at SQL2-standarden
understøtter dette med en "OVERLAPS"-operator.

Uden at vide noget som helst om SQL2, er mit spørgsmål nu, om SQL Server
2000 kan bringes til, at understøtte denne udvidede standard og i givet
fald, hvordan?

Håber nogen kan hjælpe mig...



På forhånd tak

Thomas Hvalsø Sørensen
t.s@tele2adsl.dk



 
 
Jens Gyldenkærne Cla~ (15-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 15-02-04 23:10

Thomas Sørensen skrev:

> SQL2-standarden understøtter dette med en "OVERLAPS"-operator.

- men den er så vidt jeg kan se ikke implementeret i MSSQL 2000.

> Uden at vide noget som helst om SQL2, er mit spørgsmål nu, om
> SQL Server 2000 kan bringes til, at understøtte denne udvidede
> standard og i givet fald, hvordan?

Hvis en database ikke understøtter en given kommando, er du nødt
til at bruge andre metoder.

Jeg fandt følgende via Google:
<http://groups.google.dk/groups?hl=da&lr=&ie=UTF-8&oe=utf-8&threadm=1ea061c6.0305300519.70c8eaf3%40posting.google.com&rnum=3&prev=/groups%3Fq%3Dsql%2Boverlaps%2Bserver%26hl%3Dda%26lr%3D%26ie%3DUTF-8%26oe%3Dutf-8%26selm%3D1ea061c6.0305300519.70c8eaf3%2540posting.google.com%26rnum%3D3>

Det ser ud til at virke.
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Thomas Sørensen (16-02-2004)
Kommentar
Fra : Thomas Sørensen


Dato : 16-02-04 22:03

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns9490EB9CFC9B3jcdmfdk@gyrosmod.cybercity.dk...
> Thomas Sørensen skrev:
>
> > SQL2-standarden understøtter dette med en "OVERLAPS"-operator.
>
> - men den er så vidt jeg kan se ikke implementeret i MSSQL 2000.
>
> > Uden at vide noget som helst om SQL2, er mit spørgsmål nu, om
> > SQL Server 2000 kan bringes til, at understøtte denne udvidede
> > standard og i givet fald, hvordan?
>
> Hvis en database ikke understøtter en given kommando, er du nødt
> til at bruge andre metoder.
>
> Jeg fandt følgende via Google:
>
<http://groups.google.dk/groups?hl=da&lr=&ie=UTF-8&oe=utf-8&threadm=1ea061c6
..0305300519.70c8eaf3%40posting.google.com&rnum=3&prev=/groups%3Fq%3Dsql%2Bov
erlaps%2Bserver%26hl%3Dda%26lr%3D%26ie%3DUTF-8%26oe%3Dutf-8%26selm%3D1ea061c
6.0305300519.70c8eaf3%2540posting.google.com%26rnum%3D3>
>
> Det ser ud til at virke.

Jeg takker for hjælpen, men jeg tror at Kristian Damm Jensens ide rammer
bedre plet i min applikation...

/Thomas

> --
> Jens Gyldenkærne Clausen
> »Diplomatiet består netop i, at de gamle kommatister kan få lov til
> at tro, at de har vundet. Men i virkeligheden har de tabt.«
> Ole Togeby i Information



Kristian Damm Jensen (16-02-2004)
Kommentar
Fra : Kristian Damm Jensen


Dato : 16-02-04 08:22

Thomas Sørensen wrote:
> Jeg har et kontkret problem med udviklingen af en stored procedure i
> MS SQL Server 2000. Jeg skal bruge en funktion, som kan returnere
> "overlaptiden" af to tidsintervaller der overlapper hinanden. Efter
> at have kæmpet med opgaven igennem længere tid, fandt jeg ud af (via
> søgen på www) at SQL2-standarden understøtter dette med en
> "OVERLAPS"-operator.
>
> Uden at vide noget som helst om SQL2, er mit spørgsmål nu, om SQL
> Server 2000 kan bringes til, at understøtte denne udvidede standard
> og i givet fald, hvordan?

Som Jens skriver: Nix.

> Håber nogen kan hjælpe mig...

Jeg kan ikke helt gennemskue om det link Jens angiver, kan bruges til dit
problem. her er mit forslag.

Først lidt afklaring: Du har to tidsintervaller og søger længden af det
tidsinterval, der udgør overlappet mellem de to. Altså ikke *om* de
overlapper (hvilket er nemt nok), men længden af deres overlap. Korrekt?

Når du har to intervaller, har du (op til) 4 tidspunkter. Hvis disse sættes
op på en tidslinie, vil der opstå 3 intervaller (og to uendelige
endestykker). Længden af netop ét af disse intervaller, er det du søger.

Algoritme:

Du har to intervaller A og B.

1. Læg de fire intervalendepunkter i en temporær tabel.Fjern dubletter.

2..For hvert tidspunkt, find det næstfølgende på tidslinien. Det giver
naturligvis ikke mening for det sidste tidspunkt, men vi kan evt. forsimple
beregningen ved at bruge d. 31/12 9999 som endepunkt for tidslinien.

3. Fjern evt. det sidste interval, det med 31/12 9999.

4. Du har nu mellem 1 og 4 intervaller (afhængig af om du gennemførte punkt
3). Ffor hvert interval undersøger du om det overlapper med hhv. A og B.
Hvis det overlapper med dem begge, er det netop dette interval du er
interesseret i.

Tilføj nogle nøgler, og det skulle være muligt at generalisere dette til
mængdeoperationer.

--
Kristian Damm Jensen damm (at) ofir (dot) dk
No man is an island. So is Man.


Thomas Sørensen (16-02-2004)
Kommentar
Fra : Thomas Sørensen


Dato : 16-02-04 22:02

"Kristian Damm Jensen" <REdammMOVE@ofir.dk> skrev i en meddelelse
news:c0pral$19l2oc$1@ID-146708.news.uni-berlin.de...
> Thomas Sørensen wrote:
> > Jeg har et kontkret problem med udviklingen af en stored procedure i
> > MS SQL Server 2000. Jeg skal bruge en funktion, som kan returnere
> > "overlaptiden" af to tidsintervaller der overlapper hinanden. Efter
> > at have kæmpet med opgaven igennem længere tid, fandt jeg ud af (via
> > søgen på www) at SQL2-standarden understøtter dette med en
> > "OVERLAPS"-operator.
> >
> > Uden at vide noget som helst om SQL2, er mit spørgsmål nu, om SQL
> > Server 2000 kan bringes til, at understøtte denne udvidede standard
> > og i givet fald, hvordan?
>
> Som Jens skriver: Nix.
>
> > Håber nogen kan hjælpe mig...
>
> Jeg kan ikke helt gennemskue om det link Jens angiver, kan bruges til dit
> problem. her er mit forslag.
>
> Først lidt afklaring: Du har to tidsintervaller og søger længden af det
> tidsinterval, der udgør overlappet mellem de to. Altså ikke *om* de
> overlapper (hvilket er nemt nok), men længden af deres overlap. Korrekt?
>
> Når du har to intervaller, har du (op til) 4 tidspunkter. Hvis disse
sættes
> op på en tidslinie, vil der opstå 3 intervaller (og to uendelige
> endestykker). Længden af netop ét af disse intervaller, er det du søger.
>
> Algoritme:
>
> Du har to intervaller A og B.
>
> 1. Læg de fire intervalendepunkter i en temporær tabel.Fjern dubletter.
>
> 2..For hvert tidspunkt, find det næstfølgende på tidslinien. Det giver
> naturligvis ikke mening for det sidste tidspunkt, men vi kan evt.
forsimple
> beregningen ved at bruge d. 31/12 9999 som endepunkt for tidslinien.
>
> 3. Fjern evt. det sidste interval, det med 31/12 9999.
>
> 4. Du har nu mellem 1 og 4 intervaller (afhængig af om du gennemførte
punkt
> 3). Ffor hvert interval undersøger du om det overlapper med hhv. A og B.
> Hvis det overlapper med dem begge, er det netop dette interval du er
> interesseret i.
>
> Tilføj nogle nøgler, og det skulle være muligt at generalisere dette til
> mængdeoperationer.

Jeg takker for hjælpen og arbejder videre med det...

/Thomas
>
> --
> Kristian Damm Jensen damm (at) ofir (dot) dk
> No man is an island. So is Man.
>



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste