Re: Abfrage nach einer Reihe von Jahren

From: Lars Grundei <l(dot)grundei(at)meteocontrol(dot)de>
To: "pgsql-de-allgemein(at)postgresql(dot)org" <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Re: Abfrage nach einer Reihe von Jahren
Date: 2013-10-02 13:19:38
Message-ID: 0EAF4A34C2A33B4FB958F0A6150072AC4B8C065BF3@mcsrv03.meteocontrol.intra
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

>
> 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
(pgsql-de-allgemein(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-de-allgemein

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Kretschmer 2013-10-02 13:24:53 Re: Abfrage nach einer Reihe von Jahren
Previous Message Gunnar Oehmichen 2013-10-02 12:59:42 Re: Abfrage nach einer Reihe von Jahren