2016-07-22 10 views
1

Ich habe ein Projekt in ASP.Net (C#) mit einer Spieldatenbank verbunden. Ich habe eine player Tabelle und ich möchte den Gesamtwert der playtime Reihe von allen Spielern mit dem gleichen account_id bekommen. Meine letzte Logik war:Wie kann ich einen Gesamtwert aus derselben Spalte mit mehreren Zeilen in einer MySQL-Abfrage erhalten?

MySql.Data.MySqlClient.MySqlConnection conn; 
MySql.Data.MySqlClient.MySqlCommand cmd; 
String queryStr; 
String connStringPlayer = System.Configuration.ConfigurationManager.ConnectionStrings["PlayerDB"].ToString(); 
conn = new MySql.Data.MySqlClient.MySqlConnection(connStringPlayer); 
conn.Open(); 
queryStr = "SELECT playtime FROM player.player WHERE account_id='" + AccountId + "' LIMIT 5"; 
cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn); 
{ 
    Int32 countpt = (Int32)cmd.ExecuteScalar(); 
    String playcount = countpt.ToString(); 
    AccountInfoTotalGameMinuetsValue.Text = playcount; 
} 
conn.Close(); 

Auf diese Weise meine AccountInfoTotalGameMinuetsValue Etikett zeigt nur die playtime des ersten Spieler dieser account_id (2 Spieler in diesem Konto vorhanden sind).

Antwort

0

ist, was Sie für

SUM suchen ([DISTINCT] expr)

Gibt die Summe von ausdr. Wenn der Rückgabesatz keine Zeilen enthält, gibt SUM() NULL zurück. Das Schlüsselwort DISTINCT kann verwendet werden, um nur die verschiedenen Werte von expr zu summieren.

SUM() gibt NULL zurück, wenn keine übereinstimmenden Zeilen vorhanden waren.

sind also folgende Abfrage gibt Ihnen die Summen für alle Spieler

SELECT account_id, SUM(playtime) FROM player.player GROUP BY account_id; 

wenn Sie die Informationen wollen für nur einen Spieler

SELECT account_id, SUM(playtime) FROM player.player 
WHERE account_id = some_id 
GROUP BY account_id; 
+0

Dank Ich denke, es half :) – Dev

Verwandte Themen