Fragensteller
[VB2010] Werte aus Datenbank sortieren und in einem Diagramm darstellen

Frage
-
Hallo,
ich arbeite zzT an einem Programm welches als Ergebniss ein Diagramm ausgeben soll. Im Diagramm dargestellt sein sollen verschiedene Werte sortiert nach einem bestimmten wert.
Beispiel:
Innerhalb einem Monat wurden 425 Zeilen erstellt. Diese soll er Groupieren nach Kalenderwoche und die Anzahl der Zeilen einer KW zählen (zb als Erg = KW 1 = 24 Zeilen| KW2 = 302 Zeilen.. usw). Nun soll das Programm (ggfalls mit Excel anbindung) für jede KW ein Balken in einem Diagramm darstellen. Dabei soll er aber immer nur die 6 letzten Kalenderwochen im Diagramm darstellen.
Ich habe schon schon alle funktionen für die Berechnung der einzelenen Werte geschrieben. Zzt schreibe ich noch eine Funktion welche meine Ergebnisse in eine fortlaufende Excel Tabelle speichert.
Mein Problem ist, das ich nun keine vorstellung hab, wie ich diesen filter einbauen kann, das er die Kalenderwochen groupiert und diese dann in meinem Diagramm darstellt.
Alle Antworten
-
Hi,
die Selektion solltest Du auf Datenbankebene vornehmen, damit ist das sehr einfach gemacht.
SELECT DATEPART( WW, <Datumsspalte> ) AS Woche, COUNT( 1 ) AS Anzahl FROM <Tabelle> GROUP BY DATEPART( WW, <Datumsspalte> ) ORDER BY DATEPART( WW, <Datumsspalte> )
Um ein Diagram zu erstellen, musst/solltest Du nicht Excel verwenden, es sei denn, Du brauchst das zwingend.
Ich würde hier eher das Chart Control von Microsoft nehmen.
http://msdn.microsoft.com/de-de/library/system.windows.forms.datavisualization.charting.chart.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Donnerstag, 28. Februar 2013 12:15
-
hmm... ich hänge irgendwie.
Mein aktueller Befehl zählt alle befüllten Zeilen in meiner Datenbank.
"SELECT COUNT(*) FROM WKZ_Anfrage Where WKZ_VORLAUF>240"
Ich habe mir eine Funktion geschrieben die aus dem Zeitstempel die KW berechnet damit ich alle Werte einer KW zusammenzählen kann.
Wie schreibe ich nun mein Befehl um, so das er alle Werte aus zb KW1 zählt, dann alle aus KW2 usw usw
-
Danke hab das Problem gelöst
Und wie? Falls mal jemand ein ähnliches Problem hat, freut er sich bestimmt, die Lösung hier nachlesen zu können :)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Als erstes habe ich die Kalenderwochen berechnet.
DatePart(DateInterval.WeekOfYear, CDate(Felder(iA, 0)), FirstDayOfWeek.Monday, FirstWeekOfYear.Jan1)
Mit der KW war es nun einfach die KWs zu Sortieren und die zeilen zu zählen.
SELECT spalteKW, COUNT(*) AS variable FROM table WHERE spalteZahl>Wert GROUP BY spalteKW
Mit der "variable", konnte ich nun weiterarbeiten oder direkt in tabellen speichern.