2 Selects in Einem? (Gegenüberstellung)

2 Selects in Einem? (Gegenüberstellung)

am 10.11.2006 10:42:34 von spam

Hallo,

ich brauche mal bitte einen Denkanstoß für folgende Aufgabenstellung:

In einer Tabelle befinden sich Datensätze mit folgender Struktur:

Kostenstelle, Job_Datum, Job_Dauer, Erfass_Typ

In Erfass_Typ steht entweder "BDE" oder irgend etwas Anderes. Ziel ist
es, per SQL-Statement eine Ergebnistabelle in der Art zu erstellen:

Kostenstelle, Job_Datum, Job_Dauer_BDE, Job_Dauer_sonstig

Es sollen also die aufgelaufenen Fertigungszeiten pro Tag und
Kostenstelle summiert werden - einmal die, die mittels BDE erfasst
wurden und die, die mittels (derzeit noch parallel laufendem)
Tageszettel erfasst wurden. Ziel ist es, die Werte auf Plausibilität zu
prüfen (gegenüberzustellen) ...

Ich steh da gerade irgendwie auf dem Schlauch. Möglichst ohne temporäre
Tabelle, Laufzeit ist egal.

Danke für Tips, Frank

Re: 2 Selects in Einem? (Gegenüberstellung)

am 10.11.2006 11:08:46 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: 2 Selects in Einem? (Gegenüberstellung)

am 10.11.2006 11:34:29 von Thomas Rachel

Frank Esselbach wrote:

> Hallo,
>
> ich brauche mal bitte einen Denkanstoß für folgende Aufgabenstellung:
>
> In einer Tabelle befinden sich Datensätze mit folgender Struktur:
>
> Kostenstelle, Job_Datum, Job_Dauer, Erfass_Typ
>
> In Erfass_Typ steht entweder "BDE" oder irgend etwas Anderes. Ziel ist
> es, per SQL-Statement eine Ergebnistabelle in der Art zu erstellen:
>
> Kostenstelle, Job_Datum, Job_Dauer_BDE, Job_Dauer_sonstig

Und die Gemeinsamkeit liegt bei Kostenstelle und Job_Datum? Und die
beiden sind dann eindeutig?

Dann sollte sowas gehen wie

SELECT
t1.Kostenstelle, t1.Job_Datum, t1.Job_Dauer AS Job_Dauer_BDE,
t2.Job_Dauer AS Job_Dauer_sonstig, t2.Erfass_Typ FROM
Tabelle t1
JOIN Tabelle t2 ON
t1.Kostenstelle=t2.Kostenstelle AND
t1.Job_Datum=t2.Job_Datum AND
t1.Erfass_Typ='BDE' AND t2.Erfass_Typ!='BDE'

Kann sein, daß Du eine oder beide der 'BDE'-Bedingungen ins WHERE
auslagern mußt, da bin ich mir nie sicher...


HTH,

Thomas
--
Wo kaemen wir den da hin, wenn jeder jedes Fup auf einen eigenen Artikel
gleich persoenlich nehmen wuerden... Oh... nach dang... :)
(Christian Wederhake in de.alt.admin)

Re: 2 Selects in Einem? (Gegenüberstellung)

am 10.11.2006 15:00:40 von Werner Bauer

Frank Esselbach schrieb:
> Kostenstelle, Job_Datum, Job_Dauer, Erfass_Typ
>=20
> In Erfass_Typ steht entweder "BDE" oder irgend etwas Anderes. Ziel ist
> es, per SQL-Statement eine Ergebnistabelle in der Art zu erstellen:
>=20
> Kostenstelle, Job_Datum, Job_Dauer_BDE, Job_Dauer_sonstig
>=20
> Es sollen also die aufgelaufenen Fertigungszeiten pro Tag und
> Kostenstelle summiert werden - einmal die, die mittels BDE erfasst
> wurden und die, die mittels (derzeit noch parallel laufendem)
> Tageszettel erfasst wurden. Ziel ist es, die Werte auf Plausibilität =
zu
> prüfen (gegenüberzustellen) ...=20

nicht getestet ... auch nicht an deine Gross-Kleinschreibungsweise=20
angepasst:

SELECT kostenstelle, job_datum,
sum(if(erfass_typ=3D'BDE',job_dauer,0)) sum_bde,
sum(if(erfass_typ<>'BDE',job_dauer,0)) sum_nonbde
..
group by 1,2

HTH,
Werner