Ir para conteúdo
Entre para seguir isso  
santos_s

somar resultado

Recommended Posts

Gostaria de somar uma coluna de acordo com o critério informado, sendo que o usuário pode deixar de informar o critério e listar todos os resultados da tabela, segue sql:

SELECT sv.modelo_veiculo, sv.tp_veiculo, sv.marca_veiculo, sv.placa_veiculo, sv.ano_veiculo, sv.tp_aquisicao_veiculo, sv.secretarias_cod_secretaria, sv.situacao_veiculo,sv.obs_veiculo, sv.uso_veiculo,gv.tp_veiculo_geplan,gv.modelo_veiculo_geplan,gv.marca_veiculo_geplan,ace.nome_acao AS estado_veiculo,acp.nome_acao AS tipo_posse,	gs.nome_secretaria
	FROM seinfra_veiculos sv
INNER JOIN geplan_veiculos gv ON (sv.modelo_veiculo = gv.cod_veiculo_geplan ) 
INNER JOIN acoes ac ON (sv.tp_aquisicao_veiculo = ac.cod_acao)
INNER JOIN geplan_secretarias gs ON (sv.secretarias_cod_secretaria = gs.cod_secretaria) 
INNER JOIN acoes ace ON (sv.situacao_veiculo = ace.cod_acao)
INNER JOIN acoes acp ON (sv.tp_aquisicao_veiculo = acp.cod_acao) 
	WHERE sv.placa_veiculo LIKE  '$placa_veic'								ORDER BY gv.modelo_veiculo_geplan ASC

sendo que a coluna que quero somar é em outra tabela.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão de soma já resolvi com o SUM, agora gostaria que se o usuário não digitasse o valor a ser procurado me retornasse todos os registro da tabela.

segue código:

SELECT SUM(sav.qtde_km_veiculo) / SUM(sav.qtd_lts_abaste_veiculos) AS consumo,sv.modelo_veiculo, sv.tp_veiculo, sv.marca_veiculo, sv.placa_veiculo, sv.ano_veiculo,sv.tp_aquisicao_veiculo, sv.secretarias_cod_secretaria,
sv.situacao_veiculo,sv.versao_veiculo,sv.obs_veiculo, sv.uso_veiculo,
gv.tp_veiculo_geplan,gv.modelo_veiculo_geplan,gv.marca_veiculo_geplan,ace.nome_acao AS estado_veiculo,acp.nome_acao AS tipo_posse,
gs.nome_secretaria,sav.qtde_km_veiculo
FROM seinfra_veiculos sv
  INNER JOIN geplan_veiculos gv ON (sv.modelo_veiculo = gv.cod_veiculo_geplan )  INNER JOIN acoes ac ON (sv.tp_aquisicao_veiculo = ac.cod_acao)
  INNER JOIN geplan_secretarias gs ON (sv.secretarias_cod_secretaria = gs.cod_secretaria) 
  INNER JOIN acoes ace ON (sv.situacao_veiculo = ace.cod_acao)
  INNER JOIN acoes acp ON (sv.tp_aquisicao_veiculo = acp.cod_acao)
  INNER JOIN seinfra_abaste_veiculos sav ON (sv.modelo_veiculo = sav.seinfra_veiculos_cod_veiculo) WHERE sv.placa_veiculo LIKE  '$placa_veic'
ORDER BY gv.modelo_veiculo_geplan ASC

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode ocultar o filtro quando o usuário não digitar o valor, exemplo em PHP:

$valor_digitado = $_POST['valor'];

$sql = "SELECT ";
$sql .= "campo1, ";
$sql .= "campo2, ";
$sql .= "campo3 ";
$sql .= "FROM ";
$sql .= "tabela ";
if ( !empty(trim($valor_digitado)) ) {
  $sql .= "WHERE campo1 = '$valor_digitado' ";
}

Se utilizar SUM() sem o GROUP BY, o resultado será a soma de todos os registros em uma única linha, acho que poderia colocar o GROUP BY pelo campo `sv`.`placa_veiculo`.

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por JOSELUISALD
      Bom dia. Em minha aplicação o cliente quer uma cópia de seu sistema localmente e remoto (hospedado). Tem como eu fazer a sincronização dos bancos de dados, para que tudo que seja feito localmente seja inserido automaticamente no banco remoto? Desde já obrigado.
    • Por Caio_Lourençon
      Olá estou desenvolvendo um projeto utilizando a extensão MySQLi, e nisso aproveitando para utilizar algumas funções orientada a objeto! Gostaria de tirar umas dúvidas em relação a listagem de dados, são duas perguntas:   1) Utilizar a função foreach() ao invés de um while() com a função fetch_array() dentro, tem uma listagem mais rápida ou mais lenta? Pois com ambas consigo trazer os dados, No momento estou utilizando a foreach por ser mais rápida de se digitar.
      2) Utilizo muitas listagens de tabelas diferentes na mesma página sempre chamando um novo SELECT, seria melhor criar uma função com um SELECT dentro para eu sempre reutiliza-lá ou não iria mudar muita coisa em questão de desempenho?
       
      Agradeço qualquer informação.
    • Por gersonab
      Procuro uma revenda de hospedagem confiável, ja adianto que uolhost e locaweb estão fora dos planos.
    • Por Jefferson andre
      Ola, estou criando um contador de acessos diario mas nao funciona, a tabela tem o campo data no formato date e o campo contador int(10)
       
      A ideia eh verificar a data e se nao existir incluir na tabela, se existir adicionar ao contador
       
      Parece que o erro esta no formato da data, nem manualmente consigo incluir na tabela via localhost ou na hospedagem da google
       
      Agradeço qualquer ajuda
       
      <?php // fazendo uma conexão com o banco de dados include("conexao.php"); // grava a data atual em uma variavel date_default_timezone_set('America/Sao_Paulo'); $date = date('d-m-Y'); //$sql = "SELECT codigo FROM contador"; $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); if (mysqli_num_rows($resultado)== true){ // registro ja existe } else { // resultado nao encontrado entao inserir $sql = "INSERT INTO contador_diario ('data', 'contador') VALUES ('$date', '1')"; if ($arquivo->query($sql) == TRUE) { echo "Data cadastrada com sucesso"; } else { echo "Erro: " . $sql . "<br>" . $arquivo->error; } } // refaz a pesquisa para registrar o contador $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); // igualar a array a uma variavel $linha=mysqli_fetch_array($resultado); $cod_2 = $linha["contador"]+1; // lista a variavel //echo "<font face='Arial'><span class='style14'>$cod_2</span></font>"; $sql = "UPDATE contador_diario SET contador=$cod_2"; if ($arquivo->query($sql) === TRUE) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas diario" . mysqli_error($arquivo); } // fecha a conexao mysqli_close($arquivo); ?>  
    • Por gersonab
      Tenho este sql que funciona normal:
      <?php $idtor = (int)$_GET['id_tor']; $dia = $_GET['dia']; $sql3 = "SELECT * FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE data = :dia AND id_torneio = :idtor ORDER BY cantosfim DESC, pontos DESC, cantos DESC"; $stmt = $pdo->prepare($sql3); $stmt->bindParam(':idtor', $idtor); $stmt->bindParam(':dia', $dia); $stmt->execute(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> porém este outro não retorna nada, nem erro...
      <?php $idtor = (int)$_GET['id_tor']; $consul = "SELECT id_cantos, id_torneio, id_campeonato, SUM(cantosfim) AS cantfin, SUM(pontos) AS pontfin FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE id_tor = :idtor ORDER BY pontfin DESC, cantfin DESC"; $stmt = $pdo->prepare($consul); $stmt->bindValue(':idtor', $idtor); $stmt->execute(); while ($lin = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> não consigo encontrar o erro.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.