Re: Abfrage nach einer Reihe von Jahren

Lars Grundei <[email protected]> Wed, 2 Oct 2013 15:19:38 +0200
Newsgroups gmane.comp.db.postgresql.german
Message-ID <0EAF4A34C2A33B4FB958F0A6150072AC4B8C065BF3@mcsrv03.meteocontrol.intra>
> 
> Mit der Abfrage sehe ich nun die Jahre in welchem die oben bei SH
gezählten
> Probestellen Einträge haben:
> 
> SELECT land,
>    mzb.samplsite_id,
>    EXTRACT (YEAR FROM date) AS Probejahr FROM
>    public.mzb WHERE mzb.land = 'SchleswigHolstein' AND
>    (EXTRACT (year from mzb.date) = 1999 OR
>     EXTRACT (year from mzb.date) = 2000 OR
>     EXTRACT (year from mzb.date) = 2001 OR
>     EXTRACT (year from mzb.date) = 2002) GROUP BY mzb.samplsite_id,
mzb.land,
> Probejahr;
> 
>         land        | samplsite_id | probejahr
> -------------------+--------------+-----------
>   SchleswigHolstein |      1200004 |      2000
>   SchleswigHolstein |      1200003 |      2000
>   SchleswigHolstein |      1200005 |      2002
>   SchleswigHolstein |      1200005 |      2001
> (4 rows)
> 
> Wie ihr seht beinhaltet die OR Abfrage alle Probestellen, welche in einem
der
> besagten Jahre Einträge haben. Ziel ist jedoch solche aufzuführen oder zu
> zählen, die in ALLEN Jahren beprobt wurden.

Dann wirst du noch ein bauen müssen, dass jedes Jahr mindestens eine Zeile
liefert
... ((EXTRACT (year from mzb.date) = 1999 AND (SELECT COUNT(*) FROM ...) >=
1) OR...) GROUP BY

> 
> Warum macht eigentlich die AND Abfrage wie erst von mir gedacht keinen
Sinn?
> Eine Zeile kann ja nicht mehrere Werte in der date-Spalte haben, die dann
auch
> noch aus unterschiedlichen Jahren wären, wenn ich das richtig verstehe.

Da ist doch auch das Problem, du verlangst die Spalte muss gleichzeitig
genau mehreren Werten entsprechen, kann nicht klappen - genauso wie if(1==a
&& 2==a) nie klappen wird.

> 
> Gruß,
> 
> Gunnar
> 
> 
> Am 02.10.2013 13:00, schrieb bernhard:
> > Hallo Andreas,
> >> Alternativ sollte folgendes auch klappen:
> >>
> >> WHERE
> >>     mzb.date > '01.01.1999'::timestamp AND
> >>     mzb.date < '31.12.2002'::timestamp
> >>
> >>
> > muß das nicht
> >
> > mzb.date <= '31.12.2002'::timestamp
> >
> > sein?
> >
> > Gruß
> > Bernhard
> >
> 
> 
> --
> Gunnar Oehmichen
> Quantitative Landscape Ecology
> Institute for Environmental Sciences
> University Koblenz-Landau
> Fortstrasse 7
> 76829 Landau
> Germany
>
http://www.uni-koblenz-landau.de/landau/fb7/umweltwissenschaften/landscape-
> ecology/Staff/gunnaroehmichen
> 
> 
> --
> Sent via pgsql-de-allgemein mailing list
([email protected])
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-de-allgemein
smime.p7s (application/x-pkcs7-signature, 6.1 KB) - not displayed