首页 > 解决方案 > 如何选择同名的 SQL 数据库值并将其对应的值求和

问题描述

在此处输入图像描述

我想添加所有公升的名为骆驼的牛,而不会被其他牛类别打断,......任何人都可以提供帮助......虽然这是一个c# 项目

con.Open();
SqlDataAdapter sda = new SqlDataAdapter(
"insert into NewMilk(ProviderName,Cattle,Liter,[Price/liter],Salary,Date) values('" +
    txtNewMilkName.Text + "', '" + txtNewMilkCattle.Text + "', '" + 
    txtNewMilkLiter.Text + "', '" + txtNewMilkPrice.Text + "', '" +
    txtNewMilkSalary.Text + "', '" + label11.Text + "')", con);
sda.SelectCommand.ExecuteNonQuery();
con.Close();

MessageBox.Show("Data is Saved Succesfully...!");
txtNewMilkName.Clear();
txtNewMilkCattle.Clear();
txtNewMilkLiter.Clear();
txtNewMilkPrice.Clear();
txtNewMilkSalary.Clear();

我使用此代码添加到数据库中,但我想检索在其中一个牛名称中找到的所有升值...

例如,如果我想要在牛名下保存的牛的总和,那么我只能在牛下添加行升的值,...

标签: c#sql

解决方案


您可以按牛分组

SELECT Cattle, SUM(Liter) AS TotalLiter
FROM NewMilk
GROUP BY Cattle
ORDER BY Cattle

请参阅:SQL GROUP BY 语句

或者,如果您只需要一种特定牛类型的总数

SELECT SUM(Liter) AS TotalLiter
FROM NewMilk
WHERE Cattle = 'Cow'

您可以执行返回这样的行的 SQL 命令

string sql = "SELECT Cattle, SUM(Liter) AS TotalLiter ... "; // 1st SQL example.
using (var con = new SqlConnection("connection string"))
using (var cmd = new SqlCommand(sql, con)) {
    con.Open();
    var reader = cmd.ExecuteReader();
    while (reader.Read()) {
        string cattle = reader.GetString(0); // 1st column
        int total = reader.GetInt32(1); // 2nd column
        ...
    }
}

或者,如果您只有一行一列,即一个结果值

string sql = "SELECT SUM(Liter) AS TotalLiter ... ";  // 2nd SQL example.
using (var con = new SqlConnection("connection string"))
using (var cmd = new SqlCommand(sql, con)) {
    con.Open();
    int total = (int)cmd.ExecuteScalar();
    ...
}

另请参阅:查询数据库的正确方法:参数化 SQL 查询。


推荐阅读