AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu DbChart

Ein Thema von trialfreak · begonnen am 18. Nov 2003 · letzter Beitrag vom 27. Nov 2003
Antwort Antwort
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#1

Frage zu DbChart

  Alt 18. Nov 2003, 21:12
Hallo!

Ich schreibe eine Anwendung in der ich u.a. eine graphische Statistik erstelle deren Werte aus einer Datenbank stammen.

Ich habe diese Statistik mit 2 DbCharts realisiert - eins für eine allgemeine Statistik (alle Standorte) und das andere für eine standortbezogene Statistik.
(Damit soll man einzelne Tendenzen in den Standorten im Vergleich zu allen zusammen erkennen)

Unter anderem sollen diese Charts je nach Auswahl eine Balken-Auswertung über bearbeitete Projekte in den einzelnen Jahren beinhalten.

Beide DBCharts (bzw. das Balkendiagramm) werden über 2 getrennte Queries "gefüttert" (einmal für allgemein und einmal für den Standort).

Nun zum Problem:

In der allgemeinen Statistik gibt es z.B. Projekte ab dem Jahr 1996. Bis 2003 ergibt das also 8 Balken unterschiedlicher Größe.

Ein einzelner Standort besitzt nun z.B. nur Projekte in den Jahren 1999,2000,2001,2002,2003.

Wie kann ich erreichen dass die Balken der entsprechenden Jahre untereinander angezeigt werden?
(Die Charts sind untereinander platziert)


Hoffe ihr könnt mir helfen, das Lesen hier macht jedenfalls immer schon sehr schlau ( )

Nun wart' ich auf eure Antworten

Christian
  Mit Zitat antworten Zitat
Beg

Registriert seit: 11. Apr 2003
35 Beiträge
 
Delphi 7 Professional
 
#2

Re: Frage zu DbChart

  Alt 19. Nov 2003, 12:08
Hallo,

du könntest eine temporäre Tabelle erstellen:


Jahr / Standort1 / Standort2
1996 / 22 / 0
..
1999 / 13 / 11
..

somit könntest du auch alle in einem Chart darstellen.

Gruß
BeG
  Mit Zitat antworten Zitat
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#3

Re: Frage zu DbChart

  Alt 19. Nov 2003, 17:18


Ich möchte ja weiterhin 2 verschiedene Charts haben, will nur dass beide gleich viele Balken haben. (nur dass man die mit Wert 0 eh nicht sieht...)
DbChart1 und Dbchart2 sollen gleich viele Balken haben damit die entsprechenden Jahre untereinander sind.

Christian
  Mit Zitat antworten Zitat
Beg

Registriert seit: 11. Apr 2003
35 Beiträge
 
Delphi 7 Professional
 
#4

Re: Frage zu DbChart

  Alt 19. Nov 2003, 19:16
Kannst du ja!
Brauchst ja nur eine Datenquelle!
Du weist dem X Wert das Jahr zu und Standort1 als y.
Das gleiche mit dem 2. Chart.

Gruß Beg
  Mit Zitat antworten Zitat
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#5

Re: Frage zu DbChart

  Alt 20. Nov 2003, 12:16
Mhh also ich versteh irgendwie nicht wie du das meinst...


Bsp. für allgemein

SELECT jahr AS 'Info', count(*) AS 'Anzahlfrom beitrag group by jahr und standortbezogen:

SELECT jahr AS 'Info', count(*) AS 'Anzahlfrom beitrag where standort = :standortnr group by jahr (standortnr wird zur Laufzeit als veränderlicher Parameter benutzt)

Beschriftung ist in den jeweiligen Charts auf 'Info' gestellt (d.h. unter den Balken steht das Jahr) und Balken steht auf 'Anzahl'


Das Problem ist dass der allgemeine Query z.B. alle Jahre ab 1996 zurückliefert, der Standort-Query aber erst ab z.B. 1998 da es vorher keine Beiträge von dort gab.
(Der SQL Server liefert also weniger Datensätze für das Standort-Chart)

Darum haben die 2 verschiedenen Charts auch unterschiedl. viele Gesamtbalken (und somit versch. Breiten der einzelnen Balken)

Wie krieg ich das in einheitlicher Optik hin...
  Mit Zitat antworten Zitat
Beg

Registriert seit: 11. Apr 2003
35 Beiträge
 
Delphi 7 Professional
 
#6

Re: Frage zu DbChart

  Alt 20. Nov 2003, 15:05
Na ja,
du nimmst das Ergebnis vom allgemeinen Query und fügst die Datensätze in die TempTabelle.
somit hättest du in der temp Tabelle schon mal die Daten von 1996 bis 2003.

insert into temp (Jahr,Standort1) Values(AllgemQuery.FieldByName('INFO').AsDate,Allg emQuery.FieldByName('Anzahl').AsInteger)


Dann nimmst du den StandortQuery und machst mit diesen Daten einen Update auf die TempTabelle.

update temp
set Standort2 = StandortQuery.FieldByName('Anzahl').AsInteger
where Jahr = AllgemQuery.FieldByName('INFO').AsDate

Jetzt stehen von der StandortQuery bei den Jahren 1996,1997 NULL Werte in der TempTabelle.

Jetzt nimmst du Chart1 und setzt die X Werte auf Jahr und
die Balken bekommen Standort1.

Bei Chart2 und setzt die X Werte auf Jahr und
die Balken bekommen Standort2.

Somit stehen die Balken der jeweiligen Jahre untereinander.
  Mit Zitat antworten Zitat
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#7

Re: Frage zu DbChart

  Alt 24. Nov 2003, 22:11
Hallo Beg,
danke das hilft mir schon viel weiter

Falls mySQL irgendwann mal SubSelects unterstützt (4.1?) muss ich nur die temporäre Tabelle rausnehmen - die Vorgehensweise bleibt gleich.

Kannst du mir vielleicht noch sagen wie ich eine temporäre Tabelle die nur im Speicher existiert erstellen kann und wie ich mit der umgegehen muss?
Das wäre super...

mfg,
Christian
  Mit Zitat antworten Zitat
Beg

Registriert seit: 11. Apr 2003
35 Beiträge
 
Delphi 7 Professional
 
#8

Re: Frage zu DbChart

  Alt 27. Nov 2003, 11:37
Hallo,

Zitat:
Kannst du mir vielleicht noch sagen wie ich eine temporäre Tabelle die nur im Speicher existiert erstellen kann und wie ich mit der umgegehen muss?

man könnte ein Record und dynamisches Array verwenden,
oder ein ClientDataSet (soll wie ein Memory Table funktionieren),
aber da kenn ich mich leider nicht aus.

Gruß

Beg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz