Inquiridor
Como salvar o resultado de um SELECT SUM()... ?

Discussão Geral
-
Olá, sou novo por aqui e estou iniciando em programação
Minha dúvida é a seguinte:
Como eu armazeno em uma variável o valor de um select Sum()?
pois eu tenho que somar o valor de todos os 'pedidos' que estão em uma tabela do banco de dados e armazenar em uma variável chamada valorTotal
Desde já eu agradeço
Todas as Respostas
-
Olá Guilherme..
Boa tarde.
Você quer saber como fazer na query usando o comando SUM , ou, você quer saber como armazenar na variável valorTotal pelo VB ?
Eu não entendi bem.
Se for pelo SELECT, pode ser assim:
SELECT
SUM(PEDIDOS) AS valorTotal
FROM .....
Se for pelo VB, tem que declarar a variável valorTotal:
Dim valorTotal as Double //(pode ser Variant)
valorTotal = [nomedoRecordSet].valorTotal
Seria isto que vc. quer ?
Aguardo
Abs
-
Oi, Desculpa a demora pra responder.
É pelo VB, vou mandar o código pra explicar exatamente o que eu pretendo. Segue:
Public Property StrComando As String
Public Property comando As SqlCommand
Public Property da As SqlDataAdapter
Public Property dt As New DataTable
Public Property totalRecebido As String
Public Sub TotalEmCaixa(ByVal dtInicio As String, ByVal dtFinal As String)
Me.StrComando = "SELECT SUM(VALOR) FROM PEDLOCAL WHERE DATA BETWEEN @dtInicio AND @dtFinal"
Try
conexao.ConnectionString = strConexao
comando = New SqlCommand(StrComando, conexao)
comando.Parameters.AddWithValue("@dtInicio", dtInicio)
comando.Parameters.AddWithValue("@dtFinal", dtFinal)
da = New SqlDataAdapter(comando)
da.Fill(dt) 'Recebe os dados e preenche o adaptador de dados
Me.totalRecebido = // Gostaria de colocar aqui o resultado do select acima
Catch ex As Exception
MessageBox.Show("Erro ao obter total em caixa")
Finally
conexao.Close()
End Try
End Sub -
-
Olá Guilherme,
A execução do teu comando vai retornar apenas um valor, ou seja vai ser um execução Scalar que não necessita do adaptador. Portanto o teu código seria:
Public Property StrComando As String
Public Property comando As SqlCommand
Public Property da As SqlDataAdapter
Public Property dt As New DataTable
Public Property totalRecebido As String
Public Sub TotalEmCaixa(ByVal dtInicio As String, ByVal dtFinal As String)
Me.StrComando = "SELECT SUM(VALOR) FROM PEDLOCAL WHERE DATA BETWEEN @dtInicio AND @dtFinal"
Try
conexao.ConnectionString = strConexao
comando = New SqlCommand(StrComando, conexao)
comando.Parameters.AddWithValue("@dtInicio", dtInicio)
comando.Parameters.AddWithValue("@dtFinal", dtFinal)
Me.totalRecebido = comando.ExecuteScalar()
Catch ex As Exception
MessageBox.Show("Erro ao obter total em caixa")
Finally
conexao.Close()
End Try
End SubEspero que te ajudou, caso sim vote como útil e marque como resposta.
-
Obrigado a todos pelas respostas, mas consegui resolver da seguinte forma, segue o código a baixo:
Public Sub TotalEmCaixa(ByVal dtInicio As String, ByVal dtFinal As String)
Me.StrComando = "SELECT VALOR FROM PEDLOCAL WHERE DATA BETWEEN @dtInicio AND @dtFinal"
Try
conexao.ConnectionString = strConexao
comando = New SqlCommand(StrComando, conexao)
comando.Parameters.AddWithValue("@dtInicio", dtInicio)
comando.Parameters.AddWithValue("@dtFinal", dtFinal)
da = New SqlDataAdapter(comando)
da.Fill(dt) 'Recebe os dados e preenche o adaptador de dados
Me.totalRecebido = dt.Compute("SUM(VALOR)", "")
Catch ex As Exception
MessageBox.Show("Erro ao obter total em caixa")
Finally
conexao.Close()
End Try
End Sub