phpbar.de logo

Mailinglisten-Archive

Pivotabfrage

Pivotabfrage

Robert Pleniger pleniger at rpdev.at
Don Aug 19 14:15:19 CEST 2004


Norbert Pfeiffer [mailto:norbert at itbw.de] schrieb:
> 
> Hi Robert,
> 
> mir fallen dazu drei Wege ein:
> 
> 1. man fragt pro Monat die DB mit einem SQL-Statement ab
> SELECT SUM(*)
> FROM EinAustritte
> WHERE Eintritt <= $monat
>   AND Austritt >= $monat
> 
> 2. man erzeugt eine temporaere einspaltige Tabelle die nur
>    die gewuenschten Monate beinhaltet und fragt dann:
> SELECT b.monat, SUM(*)
> FROM EinAustritte AS a, Belegschaft AS b
> WHERE a.Eintritt <= b.monat
>   AND a.Eintritt <= b.monat
> GROUP BY b.monat;
> 
> Also suche Dir was aus ... :-)
> 
> 
Danke.

Der 2. Ansatz hatt mir auf die Sprünge geholfen.
Wobei ich jetzt keine temporaere Tabelle erstelle, sondern eine fixe
Tabelle mit den Monaten von Beginn an bis ins Jahr 2010 ('1998/01',
'1998/02' usw.) erstellte.
Die Abfrage sieht jetzt so aus:

SELECT b.Monat, COUNT(*)
FROM EinAustritte AS a, Monatsliste AS b
WHERE DATE_FORMAT(a.Eintritt, '%y/%m') <= b.Monat
  AND (DATE_FORMAT(a.Austritt, '%y/%m') >= b.Monat OR
ISNULL(a.Austritt))
  AND b.Monat >= $ZeitraumVon
  AND b.Monat <= $ZeitraumBis
GROUP BY b.monat;

Danke noch mal an alle,

Servus und Baba


-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive