/ 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
Hjælp til at stille en SQL query
Fra : S?ren Haagerup


Dato : 20-02-04 23:22

Hej..

Jeg har brug for hjælp til at lave SQL-query, der gør det jeg vil have
den til at gøre. Det handler om INDUCKS-databasen, og man kan stille
den queries her fra: http://coa.inducks.org/coa/c1/sql.php

Ideelt skal jeg kunne spørge den: Hvor mange sider tegnede en bestemt
tegner (i dette tilfælde Don Rosa), og hvor mange sider skrev han,
hvert år, fra 1930 til 2005.

Det hele ligger i tabellen "story". Datoen er feltet "pubdate", antal
sider er "pages". "writ" er forfatter, og "art" er tegner.

Skriver jeg:
select pubdate,pages from story where art='DR' order by pubdate

Får jeg en liste over alle de historier han har tegnet, sorteret efter
pubdate. Dog vil jeg kun have de 4 første cifre fra pubdate-feltet
(årstallet), og der skal kun være en linje for hvert årstal, og antal
sider skal lægges sammen. Desuden vil jeg selv kunne vælge det
årstalsinterval der skal med på listen, istedet for at den kun viser
dem den enkelte tegner/forfatter virkelig HAR haft noget at gøre med.

Outputtet skal i sidste ende ligne (tallene er fiktive):

årstal^antal sider tegnet^antal sider skrevet
1999^46^46
2000^57^50
2001^87^80
2002^25^20

Er det helt umuligt, forklarer jeg mig bare for dårligt, eller er der
nogen der har en løsning?

Mvh
Søren

 
 
Jeppe Uhd (20-02-2004)
Kommentar
Fra : Jeppe Uhd


Dato : 20-02-04 23:44

In news:b9134db1.0402201421.a79684@posting.google.com,
S?ren Haagerup <shaagerup@hotmail.com> mumbled:
> Hej..
>
> Jeg har brug for hjælp til at lave SQL-query, der gør det jeg vil have
> den til at gøre. Det handler om INDUCKS-databasen, og man kan stille
> den queries her fra: http://coa.inducks.org/coa/c1/sql.php
>
> Ideelt skal jeg kunne spørge den: Hvor mange sider tegnede en bestemt
> tegner (i dette tilfælde Don Rosa), og hvor mange sider skrev han,
> hvert år, fra 1930 til 2005.
>
> Det hele ligger i tabellen "story". Datoen er feltet "pubdate", antal
> sider er "pages". "writ" er forfatter, og "art" er tegner.
>
> Skriver jeg:
> select pubdate,pages from story where art='DR' order by pubdate
>
> Får jeg en liste over alle de historier han har tegnet, sorteret efter
> pubdate. Dog vil jeg kun have de 4 første cifre fra pubdate-feltet
> (årstallet), og der skal kun være en linje for hvert årstal, og antal
> sider skal lægges sammen. Desuden vil jeg selv kunne vælge det
> årstalsinterval der skal med på listen, istedet for at den kun viser
> dem den enkelte tegner/forfatter virkelig HAR haft noget at gøre med.
>
> Outputtet skal i sidste ende ligne (tallene er fiktive):
>
> årstal^antal sider tegnet^antal sider skrevet
> 1999^46^46
> 2000^57^50
> 2001^87^80
> 2002^25^20
>
> Er det helt umuligt, forklarer jeg mig bare for dårligt, eller er der
> nogen der har en løsning?

Er det det her output du vil have?

select left(pubdate,4) AS pub,count(pages) AS num from story where art='DR'
group by pub order by pub

--
MVH Jeppe Uhd - NX
http://nx.dk - Webhosting for nørder og andet godtfolk



Søren Haagerup (20-02-2004)
Kommentar
Fra : Søren Haagerup


Dato : 20-02-04 23:57

Njah, det passer ikke helt.

Skriver jeg "select pubdate,pages,storycode from story where art='DR' order
by pubdate" og tæller antal tegnede sider i 2002 op manuelt, giver det 62,
og ikke 8 som i din query. Desuden vil jeg gerne have den ekstra kolonne på,
som fortæller hvor mange skrevene sider (feltet "writ" istedet for "art").

Det virker lidt som om at din query tæller antal historier istedet for antal
sider.

Sidst, men ikke mindst, ville jeg gerne kunne angive et årstalsinterval
(f.eks. [1935;2005]) så jeg derefter kan kopiere outputtet over i et
regneark, og lave et diagrammer for forskellige tegnere, som har de samme
årstal på x-aksen.

Mvh
Søren

"Jeppe Uhd" <gnewsnospam@nx.dk> wrote in message
news:40368d15$0$151$edfadb0f@dtext02.news.tele.dk...
> In news:b9134db1.0402201421.a79684@posting.google.com,
> S?ren Haagerup <shaagerup@hotmail.com> mumbled:
> > Hej..
> >
> > Jeg har brug for hjælp til at lave SQL-query, der gør det jeg vil have
> > den til at gøre. Det handler om INDUCKS-databasen, og man kan stille
> > den queries her fra: http://coa.inducks.org/coa/c1/sql.php
> >
> > Ideelt skal jeg kunne spørge den: Hvor mange sider tegnede en bestemt
> > tegner (i dette tilfælde Don Rosa), og hvor mange sider skrev han,
> > hvert år, fra 1930 til 2005.
> >
> > Det hele ligger i tabellen "story". Datoen er feltet "pubdate", antal
> > sider er "pages". "writ" er forfatter, og "art" er tegner.
> >
> > Skriver jeg:
> > select pubdate,pages from story where art='DR' order by pubdate
> >
> > Får jeg en liste over alle de historier han har tegnet, sorteret efter
> > pubdate. Dog vil jeg kun have de 4 første cifre fra pubdate-feltet
> > (årstallet), og der skal kun være en linje for hvert årstal, og antal
> > sider skal lægges sammen. Desuden vil jeg selv kunne vælge det
> > årstalsinterval der skal med på listen, istedet for at den kun viser
> > dem den enkelte tegner/forfatter virkelig HAR haft noget at gøre med.
> >
> > Outputtet skal i sidste ende ligne (tallene er fiktive):
> >
> > årstal^antal sider tegnet^antal sider skrevet
> > 1999^46^46
> > 2000^57^50
> > 2001^87^80
> > 2002^25^20
> >
> > Er det helt umuligt, forklarer jeg mig bare for dårligt, eller er der
> > nogen der har en løsning?
>
> Er det det her output du vil have?
>
> select left(pubdate,4) AS pub,count(pages) AS num from story where
art='DR'
> group by pub order by pub
>
> --
> MVH Jeppe Uhd - NX
> http://nx.dk - Webhosting for nørder og andet godtfolk
>
>



Jeppe Uhd (21-02-2004)
Kommentar
Fra : Jeppe Uhd


Dato : 21-02-04 01:19

In news:403690d9$0$208$edfadb0f@dread12.news.tele.dk,
Søren Haagerup <shaagerup@hotmail.com> mumbled:
> Njah, det passer ikke helt.


Detaljer... SUM i stedet for COUNT...

SELECT LEFT(pubdate,4) AS pub,SUM(pages) AS num FROM story WHERE art='DR'
GROUP BY pub ORDER BY pub

> Skriver jeg "select pubdate,pages,storycode from story where art='DR'
> order by pubdate" og tæller antal tegnede sider i 2002 op manuelt,
> giver det 62, og ikke 8 som i din query. Desuden vil jeg gerne have
> den ekstra kolonne på, som fortæller hvor mange skrevene sider
> (feltet "writ" istedet for "art").

SELECT LEFT(pubdate,4) AS pub,SUM(pages) AS num FROM story WHERE writ='DR'
GROUP BY pub ORDER BY pub

Jeg synes ikke lige jeg kan nare den til at join'e de to selects...

> Det virker lidt som om at din query tæller antal historier istedet
> for antal sider.

Det gjorde den også...

> Sidst, men ikke mindst, ville jeg gerne kunne angive et
> årstalsinterval (f.eks. [1935;2005]) så jeg derefter kan kopiere
> outputtet over i et regneark, og lave et diagrammer for forskellige
> tegnere, som har de samme årstal på x-aksen.


SELECT LEFT(pubdate,4) AS pub,SUM(pages) AS num FROM story WHERE art='DR'
AND (LEFT(pubdate,4))>=1992 AND (LEFT(pubdate,4))<=2000 GROUP BY pub ORDER
BY pub

SELECT LEFT(pubdate,4) AS pub,SUM(pages) AS num FROM story WHERE writ='DR'
AND (LEFT(pubdate,4))>=1992 AND (LEFT(pubdate,4))<=2000 GROUP BY pub ORDER
BY pub

Så er det vist også tid til lidt søvn

--
MVH Jeppe Uhd - NX
http://nx.dk - Webhosting for nørder og andet godtfolk



Søren Haagerup (22-02-2004)
Kommentar
Fra : Søren Haagerup


Dato : 22-02-04 03:31

> Så er det vist også tid til lidt søvn

Tusind mange tak ..

Her til sidst vil jeg lige høre om dette kan lade sig gøre: At den tager
ALLE årstal mellem f.eks. 1935 og 2005, og skriver årstallet på listen, også
selvom der ikke er nogen records i databasen der fortæller om det år..
- sådan at der ikke opstår "huller" i svaret til forespørgselen.. f.eks.
her:
1949^121^
1950^62^
1952^18^
1953^109^
1954^121^
1955^301^
- der mangler 1951 - kan den komme på, på nogen måde?

Er det også muligt at dele årstal ind i grupper, så den viser antal sider en
tegner har lavet fra 1961-1970, 1971-1980 osv?

Sidst - men ikke mindst: Er en ganske simpel optælling af alle tegnede sider
(art) og alle skrevne sider (writ) for en bestemt tegner/forfatter muligt?

Igen, mange tak for hjælpen..

Mvh
Søren



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

Månedens bedste
Årets bedste
Sidste års bedste