none
Somatório em Mysql e inserção em tabela. IMPORTANTE! RRS feed

  • Pergunta

  • Viva meus caros, estou a precisar muito da vossa ajuda, pois não estou a conseguir contornar o erro.

    Eu tenho um código em MYSQL, onde solicito que seja seleccionado os valores de uma tabela e feito as respectivas somas.

    Quando seleccionado quero que esses valores sejam carregados em outra tabela.

    Ao executar ele não regista os valores somados porque?

    strConnection = ConnectionStrings("PipplineConnectionString").ConnectionString
            dbConn = New MySqlConnection(strConnection)
            dbConn.Open()
            strSQL = "SELECT COUNT(estado) As Ganho, SUM(CAST(REPLACE(eventos_gsm,',','.') AS DECIMAL(18,2))) AS gsm, SUM(CAST(REPLACE(eventos_fixo,',','.') AS DECIMAL(18,2))) AS fixo, SUM(CAST(REPLACE(eventos_blm,',','.') AS DECIMAL(18,2))) AS blm, SUM(CAST(REPLACE(eventos_nnif,',','.') AS DECIMAL(18,2))) AS nnif FROM registo WHERE estado = 'Ganho' AND pk_utilizador = 'login' AND mes = '1'"
            dCmd = New MySqlCommand(strSQL, dbConn)
            Dim rs111 As MySqlDataReader = dCmd.ExecuteReader

            If rs111.Read() Then

                strConnection = ConnectionStrings("PipplineConnectionString").ConnectionString
                dbConn = New MySqlConnection(strConnection)
                dbConn.Open()


                strSQL = "UPDATE acumulado SET pk_utilizador=@pk_utilizador, pk_equipa=@pk_equipa, estado=@estado, mes=@mes, ano=@ano, nnif=@nnif, trimestre=@trimestre, eventos_gsm=@eventos_gsm, eventos_fixo=@eventos_fixo, eventos_blm=@eventos_blm, eventos_nnif=@eventos_nnif, pk_grupo_equipa=@pk_grupo_equipa WHERE pk_utilizador= 'login' AND estado = 'Ganho'"


                dCmd = New MySqlCommand(strSQL, dbConn)
                dCmd.Parameters.Add(New MySqlParameter("pk_utilizador", login))
                dCmd.Parameters.Add(New MySqlParameter("pk_equipa", equipa))
                dCmd.Parameters.Add(New MySqlParameter("estado", Ganho))
                dCmd.Parameters.Add(New MySqlParameter("mes", mes))
                dCmd.Parameters.Add(New MySqlParameter("ano", ano))
                dCmd.Parameters.Add(New MySqlParameter("eventos_gsm", rs111("gsm")))
                dCmd.Parameters.Add(New MySqlParameter("eventos_fixo", rs111("fixo")))
                dCmd.Parameters.Add(New MySqlParameter("eventos_blm", rs111("blm")))
                dCmd.Parameters.Add(New MySqlParameter("eventos_nnif", rs111("nnif")))
                dCmd.Parameters.Add(New MySqlParameter("pk_grupo_equipa", grupo_equipa))

                dbConn.Close()

            End If


    Ruben Soares

    quarta-feira, 8 de janeiro de 2014 17:53

Respostas

  • RubenmSoares

    Eu dei uma melhorada no seu código

    mas, eu não tenho como testar por favor da tabela e tudo mais ... coloque um debug e vai aprimorando esse código mas, o ideal seria assim

    strConnection = ConnectionStrings("PipplineConnectionString").ConnectionString
    Using dbConn As MySqlConnection = New MySqlConnection(strConnection)
    	Using dCmd As MySqlCommand = New MySqlCommand(strSQL, dbConn)
    		dbConn.Open()
    		strSQL = "SELECT COUNT(estado) As Ganho, SUM(CAST(REPLACE(eventos_gsm,',','.') AS DECIMAL(18,2))) AS gsm, SUM(CAST(REPLACE(eventos_fixo,',','.') AS DECIMAL(18,2))) AS fixo, SUM(CAST(REPLACE(eventos_blm,',','.') AS DECIMAL(18,2))) AS blm, SUM(CAST(REPLACE(eventos_nnif,',','.') AS DECIMAL(18,2))) AS nnif FROM registo WHERE estado = 'Ganho' AND pk_utilizador = 'login' AND mes = '1'"
    		Using rs111 As MySqlDataReader = dCmd.ExecuteReader()
    			If rs111.HasRows Then
    				While (rs111.Read)
    					strSQL = "UPDATE acumulado SET pk_utilizador=@pk_utilizador, pk_equipa=@pk_equipa, estado=@estado, mes=@mes, ano=@ano, nnif=@nnif, trimestre=@trimestre, eventos_gsm=@eventos_gsm, eventos_fixo=@eventos_fixo, eventos_blm=@eventos_blm, eventos_nnif=@eventos_nnif, pk_grupo_equipa=@pk_grupo_equipa WHERE pk_utilizador= 'login' AND estado = 'Ganho'"
    					Using dCmdUp As MySqlCommand = New MySqlCommand(strSQL, dbConn)
    						dCmdUp.Parameters.Add(New MySqlParameter("pk_utilizador", login))
    						dCmdUp.Parameters.Add(New MySqlParameter("pk_equipa", equipa))
    						dCmdUp.Parameters.Add(New MySqlParameter("estado", Ganho))
    						dCmdUp.Parameters.Add(New MySqlParameter("mes", mes))
    						dCmdUp.Parameters.Add(New MySqlParameter("ano", ano))
    						dCmdUp.Parameters.Add(New MySqlParameter("eventos_gsm", rs111("gsm")))
    						dCmdUp.Parameters.Add(New MySqlParameter("eventos_fixo", rs111("fixo")))
    						dCmdUp.Parameters.Add(New MySqlParameter("eventos_blm", rs111("blm")))
    						dCmdUp.Parameters.Add(New MySqlParameter("eventos_nnif", rs111("nnif")))
    						dCmdUp.Parameters.Add(New MySqlParameter("pk_grupo_equipa", grupo_equipa))
    						dCmdUp.ExecuteNonQuery()
    					End Using
    				End While
    			End If
    		End Using
    	End Using
    End Using

    Como eu disse eu não testei o código possa ser que tenha algum erro!!!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr quinta-feira, 16 de janeiro de 2014 14:24
    quinta-feira, 9 de janeiro de 2014 12:47
  • Viva Fulvio,

    Obrigado pela tua resposta.

    Coloquei o código e não apresenta erros, executei a aplicação e a mesma continua a não registar os valores na tabela :(


    Ruben Soares

    Então não tem dados na tabela ... ou a SQL não traz nenhum dado!!!

    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr quinta-feira, 16 de janeiro de 2014 14:24
    sexta-feira, 10 de janeiro de 2014 00:35

Todas as Respostas

  • RubenmSoares

    Eu dei uma melhorada no seu código

    mas, eu não tenho como testar por favor da tabela e tudo mais ... coloque um debug e vai aprimorando esse código mas, o ideal seria assim

    strConnection = ConnectionStrings("PipplineConnectionString").ConnectionString
    Using dbConn As MySqlConnection = New MySqlConnection(strConnection)
    	Using dCmd As MySqlCommand = New MySqlCommand(strSQL, dbConn)
    		dbConn.Open()
    		strSQL = "SELECT COUNT(estado) As Ganho, SUM(CAST(REPLACE(eventos_gsm,',','.') AS DECIMAL(18,2))) AS gsm, SUM(CAST(REPLACE(eventos_fixo,',','.') AS DECIMAL(18,2))) AS fixo, SUM(CAST(REPLACE(eventos_blm,',','.') AS DECIMAL(18,2))) AS blm, SUM(CAST(REPLACE(eventos_nnif,',','.') AS DECIMAL(18,2))) AS nnif FROM registo WHERE estado = 'Ganho' AND pk_utilizador = 'login' AND mes = '1'"
    		Using rs111 As MySqlDataReader = dCmd.ExecuteReader()
    			If rs111.HasRows Then
    				While (rs111.Read)
    					strSQL = "UPDATE acumulado SET pk_utilizador=@pk_utilizador, pk_equipa=@pk_equipa, estado=@estado, mes=@mes, ano=@ano, nnif=@nnif, trimestre=@trimestre, eventos_gsm=@eventos_gsm, eventos_fixo=@eventos_fixo, eventos_blm=@eventos_blm, eventos_nnif=@eventos_nnif, pk_grupo_equipa=@pk_grupo_equipa WHERE pk_utilizador= 'login' AND estado = 'Ganho'"
    					Using dCmdUp As MySqlCommand = New MySqlCommand(strSQL, dbConn)
    						dCmdUp.Parameters.Add(New MySqlParameter("pk_utilizador", login))
    						dCmdUp.Parameters.Add(New MySqlParameter("pk_equipa", equipa))
    						dCmdUp.Parameters.Add(New MySqlParameter("estado", Ganho))
    						dCmdUp.Parameters.Add(New MySqlParameter("mes", mes))
    						dCmdUp.Parameters.Add(New MySqlParameter("ano", ano))
    						dCmdUp.Parameters.Add(New MySqlParameter("eventos_gsm", rs111("gsm")))
    						dCmdUp.Parameters.Add(New MySqlParameter("eventos_fixo", rs111("fixo")))
    						dCmdUp.Parameters.Add(New MySqlParameter("eventos_blm", rs111("blm")))
    						dCmdUp.Parameters.Add(New MySqlParameter("eventos_nnif", rs111("nnif")))
    						dCmdUp.Parameters.Add(New MySqlParameter("pk_grupo_equipa", grupo_equipa))
    						dCmdUp.ExecuteNonQuery()
    					End Using
    				End While
    			End If
    		End Using
    	End Using
    End Using

    Como eu disse eu não testei o código possa ser que tenha algum erro!!!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr quinta-feira, 16 de janeiro de 2014 14:24
    quinta-feira, 9 de janeiro de 2014 12:47
  • Viva Fulvio,

    Obrigado pela tua resposta.

    Coloquei o código e não apresenta erros, executei a aplicação e a mesma continua a não registar os valores na tabela :(


    Ruben Soares

    quinta-feira, 9 de janeiro de 2014 23:51
  • Viva Fulvio,

    Obrigado pela tua resposta.

    Coloquei o código e não apresenta erros, executei a aplicação e a mesma continua a não registar os valores na tabela :(


    Ruben Soares

    Então não tem dados na tabela ... ou a SQL não traz nenhum dado!!!

    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr quinta-feira, 16 de janeiro de 2014 14:24
    sexta-feira, 10 de janeiro de 2014 00:35