Entwicklung darstellen

18/09/2007 - 14:04 von Matthias Gaedke | Report spam
Hallo Gruppe,
ich hàtte da gern mal ne Frage, ich finde keinen Ansatz bei der
Formulierung einer Abfrage. Aus folgender Tabelle möchte ich die
Anzahl der Beschàftigten für ein Diagramm ermitteln.

ID | Beginn | Ende | Personen
1 | 1.1.1992 |31.12.1992 | 20
2 | 25.2.1992 |15.3.1992 | 12
1 | 25.2.1992 |24.2.1993 | 5
. | | |
1960 | 1.10.2007 |31.01.2008 | 1

Es muss doch möglich sein aus diesen Angaben eine Abfrage zu erstellen
in der die Anzahl der Personen angezeigt wird.

Datum | Personen |
01.01.1992 | 20 |
01.02.1992 | 20 |
01.03.1992 | 37 |
01.04.1992 | 25 |
.

Daraus làsst sich dann ganz einfach ein Diagramm erstellen.

Vielen Dank im Voraus
Matthias
 

Lesen sie die antworten

#1 Jörg Burzeja
18/09/2007 - 19:16 | Warnen spam
Matthias Gaedke schrieb:
ich hàtte da gern mal ne Frage, ich finde keinen Ansatz bei der
Formulierung einer Abfrage. Aus folgender Tabelle möchte ich die
Anzahl der Beschàftigten für ein Diagramm ermitteln.

ID | Beginn | Ende | Personen
1 | 1.1.1992 |31.12.1992 | 20
2 | 25.2.1992 |15.3.1992 | 12
1 | 25.2.1992 |24.2.1993 | 5
. | | |
1960 | 1.10.2007 |31.01.2008 | 1

Es muss doch möglich sein aus diesen Angaben eine Abfrage zu
erstellen in der die Anzahl der Personen angezeigt wird.

Datum | Personen |
01.01.1992 | 20 |
01.02.1992 | 20 |
01.03.1992 | 37 |
01.04.1992 | 25 |



Entspricht zwar nicht genau der Darstellung, aber eine andere Idee habe
ich auch nicht.



set dateformat dmy
create table #temp (typ char(20), name char(20), menge int, datum
datetime)

insert into #temp (typ, name, menge, datum) values ('CD', 'Schulz', 14,
'01.01.2007')
insert into #temp (typ, name, menge, datum) values ('DVD', 'Maier', 10,
'01.01.2005')
insert into #temp (typ, name, menge, datum) values ('CD', 'Rolf', 15,
'01.02.2007')
insert into #temp (typ, name, menge, datum) values ('DVD', 'Schulz', 8,
'01.02.2005')
insert into #temp (typ, name, menge, datum) values ('CD', 'Schulz', 9,
'01.03.2007')
insert into #temp (typ, name, menge, datum) values ('DVD', 'Maier', 4,
'01.03.2008')


SELECT CASE WHEN year(datum)= 1 THEN 'Summe' ELSE year(datum) END AS
'Jahr',
SUM(CASE WHEN month(datum) between 1 and 1 THEN 1 ELSE 0 END)
AS 'Januar',
SUM(CASE WHEN month(datum) between 2 and 2 THEN 1 ELSE 0 END)
AS 'Februar',
SUM(CASE WHEN month(datum) between 3 and 3 THEN 1 ELSE 0 END)
AS 'Maerz',
SUM(CASE WHEN month(datum) between 4 and 4 THEN 1 ELSE 0 END)
AS 'April',
SUM(CASE WHEN month(datum) between 5 and 5 THEN 1 ELSE 0 END)
AS 'Mai',
SUM(CASE WHEN month(datum) between 6 and 6 THEN 1 ELSE 0 END)
AS 'Juni',
SUM(CASE WHEN month(datum) between 7 and 7 THEN 1 ELSE 0 END)
AS 'Juli',
SUM(CASE WHEN month(datum) between 8 and 8 THEN 1 ELSE 0 END)
AS 'August',
SUM(CASE WHEN month(datum) between 9 and 9 THEN 1 ELSE 0 END)
AS 'September',
SUM(CASE WHEN month(datum) between 10 and 10 THEN 1 ELSE 0 END)
AS 'Oktober',
SUM(CASE WHEN month(datum) between 11 and 11 THEN 1 ELSE 0 END)
AS 'November',
SUM(CASE WHEN month(datum) between 12 and 12 THEN 1 ELSE 0 END)
AS 'Dezember',
SUM(CASE WHEN month(datum) between 1 and 12 THEN 1 ELSE 0 END)
AS 'Summe'

FROM #temp

GROUP BY year(datum)

WITH CUBE

DROP table #temp



Viele Grüße
Jörg

Ähnliche fragen