/ 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
Oracle: Mange unions
Fra : Martin M. Pedersen


Dato : 03-07-07 11:06

Hejsa,
Jeg har en table med en foreign key 'customer' og fem dato felter.
Jeg har brug for at finde alle forskellige datoer for en bestemt
'customer' over de fem
dato felter.

Kan flg. skrives bedre, hurtigere, smartere ?


SELECT post_1_date FROM tickets t, customers c WHERE
t.customer=c.id
AND
c.name='$customer'
AND
post_1_date>=to_date('$start','YYYY-MM-DD')
AND
post_1_date<=to_date('$end','YYYY-MM-DD')

UNION

SELECT post_2_date FROM tickets t, customers c WHERE
t.customer=c.id
AND
c.name='$customer'
AND
post_2_date>=to_date('$start','YYYY-MM-DD')
AND
post_2_date<=to_date('$end','YYYY-MM-DD')

UNION

SELECT post_3_date FROM tickets t, customers c WHERE
t.customer=c.id
AND
c.name='$customer'
AND
post_3_date>=to_date('$start','YYYY-MM-DD')
AND
post_3_date<=to_date('$end','YYYY-MM-DD')

UNION

SELECT post_4_date FROM tickets t, customers c WHERE
t.customer=c.id
AND
c.name='$customer'
AND
post_4_date>=to_date('$start','YYYY-MM-DD')
AND
post_4_date<=to_date('$end','YYYY-MM-DD')

UNION

SELECT post_5_date FROM tickets t, customers c WHERE
t.customer=c.id
AND
c.name='$customer'
AND
post_5_date>=to_date('$start','YYYY-MM-DD')
AND
post_5_date<=to_date('$end','YYYY-MM-DD')
/

Mvh
Martin

 
 
Kristian Damm Jensen (03-07-2007)
Kommentar
Fra : Kristian Damm Jensen


Dato : 03-07-07 13:21

Martin M. Pedersen wrote:
> Hejsa,
> Jeg har en table med en foreign key 'customer' og fem dato felter.
> Jeg har brug for at finde alle forskellige datoer for en bestemt
> 'customer' over de fem
> dato felter.
>
> Kan flg. skrives bedre, hurtigere, smartere ?

Nej, ikke med mindre du har mulighed for og er villig til at omstrukturere
databasen. Uden at kende de præcise indhold af de fem datoer er det svært at
sige med sikkerhed, men det virker som om det ville være en god idé at lægge
dem ud i en særskilt tabel.

<snip søgning>

--
Venlig hilsen /Best regards
Kristian Damm Jensen



Leif Neland (10-07-2007)
Kommentar
Fra : Leif Neland


Dato : 10-07-07 08:48


"Martin M. Pedersen" <traxplayer@gmail.com> skrev i en meddelelse
news:468a1fc6$0$176$edfadb0f@dread11.news.tele.dk...
> Hejsa,
> Jeg har en table med en foreign key 'customer' og fem dato felter.
> Jeg har brug for at finde alle forskellige datoer for en bestemt
> 'customer' over de fem
> dato felter.
>
> Kan flg. skrives bedre, hurtigere, smartere ?
>
>
> SELECT post_1_date FROM tickets t, customers c WHERE
> t.customer=c.id
> AND
> c.name='$customer'
> AND
> post_1_date>=to_date('$start','YYYY-MM-DD')
> AND
> post_1_date<=to_date('$end','YYYY-MM-DD')
>
> UNION
... snip...

Jeg ville ihvertfald tage customers ud af det, så jeg først fandt c.id, og
brugte den værdi i union'en direkte, i stedet for $customer

Leif



Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste