C# 在C上求和Mysql值

C# 在C上求和Mysql值,c#,mysql,C#,Mysql,我有一个mysql表,其中有一些用户数据,它有一些产品保存数量,我想对每个产品数量求和以获得产品总数,我不能选择“我的产品名称在这里”,因为我需要自动获取所有产品,它们可以随时更改,因此我正在创建一个临时表并删除clients info列,以便仅从中获取产品。 我使用mysql命令仅从我的表中获取产品: CREATE TEMPORARY TABLE TemporaryTable SELECT RoteiroDia.* FROM Clientes INNER

我有一个mysql表,其中有一些用户数据,它有一些产品保存数量,我想对每个产品数量求和以获得产品总数,我不能选择“我的产品名称在这里”,因为我需要自动获取所有产品,它们可以随时更改,因此我正在创建一个临时表并删除clients info列,以便仅从中获取产品。 我使用mysql命令仅从我的表中获取产品:

CREATE TEMPORARY TABLE TemporaryTable 
    SELECT RoteiroDia.* 
    FROM Clientes 
        INNER JOIN RoteiroDia ON Clientes.id=RoteiroDia.idCliente 
        INNER JOIN NomeRotas ON Clientes.idRota=NomeRotas.id 
        INNER JOIN Vendedores ON RoteiroDia.idVendedor=Vendedores.id 
        INNER JOIN Veiculos ON RoteiroDia.idPlaca=Veiculos.id 
    WHERE NRotas = 'placeHere' 
    AND Vendedores.Nome = 'nameHere' 
    AND Veiculos.Placa = 'nameHere' 
    AND RoteiroDia.Data = 'dateHere'; 

    ALTER TABLE TemporaryTable 
        DROP COLUMN FormaPagamento, 
        DROP COLUMN Obs, 
        DROP COLUMN id, 
        DROP COLUMN Data, 
        DROP COLUMN idRota, 
        DROP COLUMN idCliente, 
        DROP COLUMN pos, 
        DROP COLUMN idVendedor, 
        DROP COLUMN idPlaca, 
        DROP COLUMN Debito, 
        DROP COLUMN Acerto, 
        DROP COLUMN Diferença, 
        DROP COLUMN DinheiroRecebido, 
        DROP COLUMN AVista, 
        DROP COLUMN Despesas, 
        DROP COLUMN NovaVendas, 
        DROP COLUMN Entradas; 

    SELECT * FROM TemporaryTable;
mysql代码给了我什么:

为了将它们汇总到每个产品中,我在这里使用以下c代码: 我正在使用rdr2.fieldcount获取当前的产品数量9,然后循环遍历它并将rdr.getint0分配给ProdutQuantidateList[I]

然后我在这里使用它来调试数量:

for(int i = 0; i < produtoQuantidadeList.Count; i++)
    Console.WriteLine($"***** {produtoQuantidadeList[i]}"); 
但是我的c代码没有正确地求和它们,显然它不能从表中得到所有的值

我的表和第三个乘积的作用是:

用我的代码求和:
这有点太复杂了。。您知道只需不提及列就可以从结果集中删除列吗?。。如果Person表中有Name和Age列,并且需要所有姓名的列表,则不需要从Person创建临时表,然后删除Age列。。您只是没有选择它:

SELECT Name FROM Person --no age column mentioned
现在,对第9列中按第0列分组的所有列求和:

SELECT Columns,You,Want,From,Roteiro, 
  SUM(column9NameHere) OVER(PARTITION BY galões) total_by_galoes
FROM
  ...

当然,你的截图只会出现在第8栏,所以我不知道你的第9栏叫什么。替换

中的名称问题应按如下方式解决:

produtoQuantidadeList = new int[rdr2.FieldCount];
while (rdr2.Read())
{
    // Loop all fields for each record
    for(int i=0; i < rdr2.FieldCount; i++)
    {
        // Sum the value of each field
        produtoQuantidadeList[i] += rdr2.GetInt32(i);
    }
}

如果您可以阅读它,那么就有可能调试itI,我认为您需要检查分区。您可以使用它向结果集中添加新列。很简单,很简洁。你好,T.kowshik Yedida,你有没有关于我如何做到这一点的建议或任何链接?我在这里搜索了很多结果,我不知道该选哪一个follow@Technoo参考mysql文档@T.kowshikYedida,我发现没有办法使用它,因为我需要动态获取产品…嘿,caius,问题是我需要选择产品galões、garrafões、vinho。。等等,因为它可以随时更改。那么您的产品应该是成行的,而不是成列的。谢谢大家,它很有效!!!!!
produtoQuantidadeList = new int[rdr2.FieldCount];
while (rdr2.Read())
{
    // Loop all fields for each record
    for(int i=0; i < rdr2.FieldCount; i++)
    {
        // Sum the value of each field
        produtoQuantidadeList[i] += rdr2.GetInt32(i);
    }
}