2016-07-22 3 views
1

У меня есть проект в ASP.Net (C#), подключенный к базе данных игр. У меня есть таблица player, и я хочу получить общее количество строк playtime со всех игроков с одинаковыми account_id. Моя последняя логика была такова:Как я могу получить общее значение из одного столбца из нескольких строк в запросе mysql?

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(); 

Таким образом, мои AccountInfoTotalGameMinuetsValue Этикетка отображает только playtime 1-го игрока этого account_id (2 игроков существуют на этот счет).

ответ

0

является то, что вы ищете

SUM ([DISTINCT] выражение)

Возвращает сумму выраж. Если набор возвратов не имеет строк, SUM() возвращает NULL. Ключевое слово DISTINCT можно использовать для суммирования только отдельных значений изв.

SUM() возвращает NULL, если не было соответствующих строк.

Так следующий запрос будет дать вам итоговые данные для всех игроков

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

, если вы хотите, чтобы информация только для одного игрока,

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

Спасибо, я думаю, что это помогло :) – Dev

Смежные вопросы