2017-11-30 1 views
-2

Wir haben eine Datumsspalte in einer Datenbanktabelle. Wir müssen prüfen, ob das Datum mehrfach vorkommt, und die Summe einer anderen Spalte mit dem Namen 'hours_remaining' hinzufügen.Summenspaltenzeilen mit Datum == spezifisches Datum in C#

Zum Beispiel am 30/11/2017 haben wir zwei Aufgaben mit 3 und 4 in der Spalte 'hours_remaining'. Wir müssen diese Werte summieren und zu einem Visual Studio-Diagramm plotten.

Momentan werden die beiden Werte getrennt im Diagramm dargestellt. Chart example

con.Open(); 
    SqlCommand cmd = new SqlCommand("SELECT * FROM SprintTask INNER JOIN Sprint ON SprintTask.sprint_id = Sprint.Id WHERE Sprint.Id = @sid", con); 
    cmd.Parameters.AddWithValue("@sid", Request.QueryString["sid"]); 

    SqlDataAdapter sda = new SqlDataAdapter(cmd); 
    DataSet st = new DataSet(); 
    sda.Fill(st, "task_start_date"); 

    Chart1.DataSource = st.Tables["task_start_date"]; 
    Chart1.Series["Series1"].XValueMember = "task_start_date"; 
    Chart1.Series["Series1"].YValueMembers = "hours_remaining"; 
    this.Chart1.Titles.Add("This is a test chart "); 

    Chart1.Series["Series1"].ChartType = SeriesChartType.Line; 
    Chart1.Series["Series1"].IsValueShownAsLabel = true; 
+1

Sie bitte Ihre entsprechenden Code schreiben, SQL, etc ... Sie mit den spezifischen Fragen. Siehe auch [** Wie stelle ich eine gute Frage **] (https://stackoverflow.com/help/how-to-ask) und [** Wie erstelle ich ein minimales, vollständiges und überprüfbares Beispiel **] (https://stackoverflow.com/help/mcve), wo zutreffend. – Nope

+0

Zeigen Sie uns den Code, wo Sie die Daten abrufen. Dies ist nicht schwer zu tun, aber ohne zu wissen, welche Datentypen Sie haben, wie Sie die Daten abrufen usw. Es ist schwer zu sagen, was Sie vorschlagen sollen. – Chris

+0

@Chris mehr Code hinzugefügt –

Antwort

0

Wie @mjwills in seinem Kommentar schrieb, müssen Sie Gruppe und Summe verwenden:

SELECT task_start_date, SUM(hours_remaining) As hours_remaining 
FROM SprintTask 
INNER JOIN Sprint ON SprintTask.sprint_id = Sprint.Id 
GROUP BY task_start_date 
WHERE Sprint.Id = @sid