/ 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
datogeneratorpseudotabel
Fra : leifnel


Dato : 09-05-02 23:03

(MySql)
Jeg har en tabel med ting med en dato på. Lad os kalde den FOLK, feltet
FDAG
Nu laver jeg "select FDAG,count(NAVN) from FOLK where FDAG between
'2002-04-01' and '2002-04-05' group by 1"
Resultat:
2002-04-02 3
2002-04-05 1

Men jeg ville gerne have alle datoer også dem med 0. Hvis man havde en
tabel med alle datoer, ALLDATES kunne man lave
"select DATO,count(NAVN) from ALLDATES left join FOLK on
(ALLDATES.DATO=FOLK.FDAG) where DATO between '2002-04-01' and
'2002-04-05'"
og få
2002-04-01 0
2002-04-02 3
2002-04-03 0
2002-04-04 0
2002-04-05 1

Kan man det?
Eller må man i php lave noget med en løkke, der for $n=0 til
$slutdato-$startdato laver en
"select date_add($startdato, interval $n days)...

Eller råt og brutalt lave en tabel med alle datoer i et vist interval?

Leif




--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


 
 
Jørgen Østergaard (10-05-2002)
Kommentar
Fra : Jørgen Østergaard


Dato : 10-05-02 17:34

Hej Leif,

det er en klassiker, du har fat i... ;)

SQL bygger jo på mængdelære, og hvis der ikke findes nogen data, så kommer
der ingen rækker ud af det... Når du alligevel roder med PHP vil jeg tro at
det nemmeste er at lave et associativt array, hvori du på forhånd
initialiserer alle relevante datoers resultatværdi til 0, hvorefter du
opdaterer med resultaterne af din select.

vh. Jørgen

"leifnel" <leifnel.news@kandu.dk> wrote in message
news:kiCC8.2717$ek6.84855@news010.worldonline.dk...
> (MySql)
> Jeg har en tabel med ting med en dato på. Lad os kalde den FOLK, feltet
> FDAG
> Nu laver jeg "select FDAG,count(NAVN) from FOLK where FDAG between
> '2002-04-01' and '2002-04-05' group by 1"
> Resultat:
> 2002-04-02 3
> 2002-04-05 1
>
> Men jeg ville gerne have alle datoer også dem med 0. Hvis man havde en
> tabel med alle datoer, ALLDATES kunne man lave
> "select DATO,count(NAVN) from ALLDATES left join FOLK on
> (ALLDATES.DATO=FOLK.FDAG) where DATO between '2002-04-01' and
> '2002-04-05'"
> og få
> 2002-04-01 0
> 2002-04-02 3
> 2002-04-03 0
> 2002-04-04 0
> 2002-04-05 1
>
> Kan man det?
> Eller må man i php lave noget med en løkke, der for $n=0 til
> $slutdato-$startdato laver en
> "select date_add($startdato, interval $n days)...
>
> Eller råt og brutalt lave en tabel med alle datoer i et vist interval?
>
> Leif
>
>
>
>
> --
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>



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

Månedens bedste
Årets bedste
Sidste års bedste