Ir para conteúdo
rodrigomv

somando dados de uma mesma coluna

Recommended Posts

Existe algum jeito de fazer um cálculo(soma) usando valores da mesma coluna?

Por exemplo: o cliente quer comprar uma cota no valor de 2000, no banco eu tenho várias cotas cadastradas, entre elas uma no valor de 1000, outra no valor de 600 e uma terceira no valor de 400. O resultado pode ser aproximado.

id      valor        admin
200     400          bb
333     500          caixa
356     1000         bb
567     600          bb
788     350          bb
900     200          caixa

Em tentativas, achei o número mais próximo de forma direta, através de um campo (não da somatória de campos). exemplo:

select * from produtcs order by ABS(value - 2000)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta...Obrigado pela dica, acho que peguei a ideia.

 

Vlw mano salvo a semana, pode fechar pot favor.

Editado por rodrigomv
agradecimento, fechar duvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava sem tempo na parte da tarde mas me lembrei deste algoritmo , talvez uma coisa mais simples resolva para você.

 

Uma procedure lendo o Cursor em ordem decrescente e indo até o limite estabelecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa a demora Motta...testei algumas coisas atraves de procedure, mas eu nao tenho tanta experiencia em programar direto no banco...por isso preferi no backend mesmo...o algoritimo ajudou bastante...ainda tenho que polir algumas coisas mas esta ficando bom...vlw novamente pela ajuda.

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

  • Conteúdo Similar

    • Por LauraGomes
      oi!
      Preciso fazer este calendário JavaScript pegar informações provenientes do banco de dados e destacar a data em que um evento acontecerá. sei que isso pode ser feito com ajuda do PHP, mas não tenho idéia de como fazer isso. Alguém pode me ajudar a fazer?
      <div class="calendar-wrapper"> <button id="btnPrev" type="button"> Anterior </button> <button id="btnNext" type="button"> Próximo </button> <div id="divCal"></div> </div> <script type="text/javascript"> var Cal = function(divId) { //guuardando o div id this.divId = divId; // Dias da semana, começando em Domingo this.DaysOfWeek = [ 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', '---', 'Sab' ]; // Meses, começando em Janeiro this.Months = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ]; // Seleciona o mês e ano atual var d = new Date(); this.currMonth = d.getMonth(); this.currYear = d.getFullYear(); this.currDay = d.getDate(); }; // Vai para o próximo mês Cal.prototype.nextMonth = function() { if ( this.currMonth == 11 ) { this.currMonth = 0; this.currYear = this.currYear + 1; } else { this.currMonth = this.currMonth + 1; } this.showcurr(); }; // Vai para o mês anterior Cal.prototype.previousMonth = function() { if ( this.currMonth == 0 ) { this.currMonth = 11; this.currYear = this.currYear - 1; } else { this.currMonth = this.currMonth - 1; } this.showcurr(); }; // Mostra o mês atual Cal.prototype.showcurr = function() { this.showMonth(this.currYear, this.currMonth); }; // Mostra o mês (ano, mês) Cal.prototype.showMonth = function(y, m) { var d = new Date() // Primeiro dia da semana no mês selecionado , firstDayOfMonth = new Date(y, m, 1).getDay() // Ultimo dia do mês selecionado , lastDateOfMonth = new Date(y, m+1, 0).getDate() // Ultimo dia do mês anterior , lastDayOfLastMonth = m == 0 ? new Date(y-1, 11, 0).getDate() : new Date(y, m, 0).getDate(); var html = '<table>'; // Mostra o mês e o ano selecionados html += '<thead><tr>'; html += '<td colspan="7">' + this.Months[m] + ' ' + y + '</td>'; html += '</tr></thead>'; // "Header" dos dias da semana html += '<tr class="days">'; for(var i=0; i < this.DaysOfWeek.length;i++) { html += '<td>' + this.DaysOfWeek[i] + '</td>'; } html += '</tr>'; //Mostra os dias var i=1; do { var dow = new Date(y, m, i).getDay(); // Se for Domingo, começa nova linha if ( dow == 0 ) { html += '<tr>'; } // Se não for domingo o primeiro dia do mês // Vai aparecer os ultimos dias do mês anterior else if ( i == 1 ) { html += '<tr>'; var k = lastDayOfLastMonth - firstDayOfMonth+1; for(var j=0; j < firstDayOfMonth; j++) { html += '<td class="not-current">' + k + '</td>'; k++; } } // Mostra o dia atual no loop var chk = new Date(); var chkY = chk.getFullYear(); var chkM = chk.getMonth(); if (chkY == this.currYear && chkM == this.currMonth && i == this.currDay) { html += '<td class="today">' + i + '</td>'; } else { html += '<td class="normal">' + i + '</td>'; } // Se for sábado, a linha acaba //dow = days of week if ( dow == 6 ) { html += '</tr>'; } // Se não for sábado o ultimo dia do mês selecionado // vai aparecer os próximos dias a partir do próximo mês else if ( i == lastDateOfMonth ) { var k=1; for(dow; dow < 6; dow++) { html += '<td class="not-current">' + k + '</td>'; k++; } } i++; }while(i <= lastDateOfMonth); // fecha a tabela html += '</table>'; // Escreve em html para a div document.getElementById(this.divId).innerHTML = html; }; // Quando a pagina carregar window.onload = function() { // começa o calendario var c = new Cal("divCal"); c.showcurr(); // Ativa o click dos botões próximo e anterior getId('btnNext').onclick = function() { c.nextMonth(); }; getId('btnPrev').onclick = function() { c.previousMonth(); }; } // Get element by id function getId(id) { return document.getElementById(id); } </script>  
    • Por wilson c. antonio
      Eu recebo os dados via post, nome e cpf, mas minha consulta não retorna nenhum dado da tabela consultada.
      O que está errado?
      <?php include("../_conexao/funcoes.php"); $con=conectado(); #conferindo os dados recebidos via $_POST if(isset($_POST['btnLogin'])){ #addslashes(trim)remove as sobras de texto em branco dos campos $nome = addslashes(trim($_POST['nNome'])); $cpf = addslashes(trim($_POST['nCPF'])); } $sql=$con->prepare("SELECT * FROM bolsa WHERE bolsa.cpf = $cpf "); $sql->execute(); while($linha=$sql->fetch(PDO::FETCH_ASSOC)){ //paginação - somar quantidade de usuários $id_bolsa = $linha['id_bolsa']; $nome = $linha['nome']; $sobrenome = $linha['sobrenome']; $ddata = date('d/m/Y', strtotime($linha['dtprv'])); $nota = $linha['nota']; $acertos = $linha['acertos']; } ?> <input type="text" value="<?php echo $nota?>" readonly="true"/> <input type="text" value="<?php echo $cpf?>" readonly="true"/>  
    • Por Thiiiziiin
      Olá pessoal, como vão?
      Estou com o seguinte problema, tenho uma tabela em um banco de dados e estou pegando os valores para gerar gráficos, com a API Charts.js.
      Estou fazendo um gráfico dinâmico, em tempo real, porém, se eu insiro um dado no banco de dados, não consigo alterar no gráfico (é preciso dar refresh na página para alterar).
      Toda a conexão com o banco de dados está correta, pois se eu atualizo a página, o gráfico altera com os valores que defini.

      Eu fiz testes utilizando o math.random(), e funcionou, atualizava conforme os valores aleatórios gerados por essa função.
      Quando defino para ler do banco de dados, fica estático.
      Minha conclusão é que a variável de conexão do banco de dados não se altera em tempo real.

      Existe a possibilidade de atualizar a variável a cada segundo em PHP?
      Segue o código que estou fazendo:
       
      <?php include('conexao.php'); $select = $PDO->query("SELECT corrente FROM tbdados ORDER BY id DESC limit 1"); $select->execute(); $result = $select->fetch(); // retorno do banco de dados mysql_close($select); ?> // Abaixo é o javascript da API Charts.js modificada <script type="text/javascript"> var ctx = document.getElementById('myChart').getContext("2d"); var gradientStroke = ctx.createLinearGradient(0, 0, 0, 0); gradientStroke.addColorStop(0, '#FFC800'); var pointStroke = ctx.createLinearGradient(0, 0, 0, 0); pointStroke.addColorStop(0, '#3f3f3f'); var gradientFill = ctx.createLinearGradient(0, 250, 0, 50); gradientFill.addColorStop(0, "rgba(63, 63, 63, 0.7)"); gradientFill.addColorStop(1, "rgba(255, 182, 0, 1)"); var contador = 0; var corrente = <?php echo $result['corrente']; ?>; // variável que foi capturada do banco var segundos = 1000; <?php echo $rows; ?> var myChart = new Chart(ctx, { type: 'line', data: { labels: ["", "", "", "", "", "", "", "", "", "" ], datasets: [{ label: "Corrente (A)", borderColor: gradientStroke, pointBorderColor: gradientStroke, pointBackgroundColor: gradientStroke, pointHoverBackgroundColor: pointStroke, pointHoverBorderColor: gradientStroke, pointBorderWidth: 5, pointHoverRadius: 10, pointHoverBorderWidth: 1, pointHitRadius: 25, pointRadius: 3, fill: true, backgroundColor: gradientFill, borderWidth: 2, data: [, , , , , , , , , ,] }] }, options: { legend: { position: "bottom", labels: { fontColor: 'rgba(255,255,255,0.5)' } }, scales: { yAxes: [{ ticks: { fontColor: "rgba(255,255,255,0.5)", fontStyle: "bold", beginAtZero: true, maxTicksLimit: 10, padding: 20, }, gridLines: { drawTicks: false, display: false } }], xAxes: [{ gridLines: { zeroLineColor: "transparent" }, ticks: { padding: 20, fontColor: "rgba(255,255,255,0.5)", fontStyle: "bold" } }] } } }); function adddata(){ myChart.data.labels.push(contador + " segundos"); myChart.data.labels.splice(0, 1); myChart.data.datasets[0].data.splice(0, 1); console.log(myChart.data.datasets[0].data); myChart.data.datasets[0].data.push(corrente); myChart.update(); contador+=(segundos / 1000); } setInterval(function(){ adddata(); },segundos); var option = { showLines: true, scales: { yAxes: [{ display: true, ticks: { beginAtZero:true } }] } }; $(function() { setTime(); function setTime() { var date = new Date().getTime(); var string = "Corrente:<br/><span class='corrente_valor'>"+corrente+"</span><br/>Amperes"; setTimeout(setTime, segundos); $('#correnteCirculo').html(string); } }); </script>  
    • Por PedroTodorovski
      Quais a vantagens e as desvantagens de desenvolver um menu dinâmico (banco de dados) ao invés de um menu estático? Estou desenvolvendo um ecommerce e tenho essa dúvida.
    • Por brunobos21
      Olá, eu criei um formulario que salva os dados em um banco de dados mysql, e criei uma pagina de relatorio para mostrar todo mundo que se cadastra nesse banco, até ai tudo certo, só que eu tenho um campo "Status" que eu queria colocar um checkbox para o administrador poder marcar esse campo e mudar no mysql o valor do Status para 1 sempre que clicar no botão atualizar, e se o administrador desmarcar antes apertar o botão Atualizar, não mudar na tabela. Já pesquisei em tudo quer canto e não achei, se puderem me ajudar enviando algum modelo de código ou algum tópico aqui do forúm que ja fale sobre isso, agradeço. Aqui está meu código:
      <?php // definições de host, database, usuário e senha $host = "host"; $banco = "banco"; $user = "user"; $pass = "pass"; $tbl_name="tabela";   $nome = $_POST['nome']; $numero = $_POST['numero']; $email = $_POST['email']; $cidade = $_POST['cidade']; $whatsapp = $_POST['whatsapp']; $data = $_POST['data']; $status = $_POST['status'];   // conecta ao banco de dados $con = mysql_pconnect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR); // seleciona a base de dados em que vamos trabalhar mysql_select_db($banco, $con); // cria a instrução SQL que vai selecionar os dados $query = sprintf("SELECT * FROM Pesquisas"); // executa a query $dados = mysql_query($query, $con) or die(mysql_error()); // transforma os dados em um array $linha = mysql_fetch_assoc($dados); // calcula quantos dados retornaram $total = mysql_num_rows($dados); ?> <!DOCTYPE html> <html lang="en"> <head>     <title>Relatorio</title>     <meta charset="latin1_swedish_ci">     <meta name="viewport" content="width=device-width, initial-scale=1"> <!--===============================================================================================-->       <link rel="icon" type="image/png" href="images/icons/favicon2.ico"/> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="vendor/bootstrap/css/bootstrap.min.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="vendor/animate/animate.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="vendor/select2/select2.min.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="vendor/perfect-scrollbar/perfect-scrollbar.css"> <!--===============================================================================================-->     <link rel="stylesheet" type="text/css" href="css/util.css">     <link rel="stylesheet" type="text/css" href="css/main.css"> <!--===============================================================================================--> <script src="vendor/jquery/jquery-3.2.1.min.js"></script> <script type="text/javascript"> //--> </script> </head> <body> <form action=" " method="post">     <div class="limiter">         <div class="container-table100">             <div class="wrap-table100">                 <div class="table100">                     <table>                         <thead>                             <tr class="table100-head">                                 <th class="column1">Nome</th>                                 <th class="column2">Numero</th>                                 <th class="column3">Cidade</th>                                 <th class="column4">E-mail</th>                                 <th class="column5">Whatsapp</th>                                 <th class="column6">Tipo</th>                                 <th class="column6">Data</th>                                 <th class="column6">Status</th>                             </tr>                         </thead>                           <?php                         // se o número de resultados for maior que zero, mostra os dados                         if($total > 0) {                     // inicia o loop que vai mostrar todos os dados                     do {                         ?>                         <tbody>                                 <tr>                                     <td class="column1"><?=$linha['nome']?></td>                                     <td class="column2"><?=$linha['numero']?></td>                                     <td class="column3"><?=$linha['cidade']?></td>                                     <td class="column4"><?=$linha['email']?></td>                                     <td class="column5"><?=$linha['whatsapp']?></td>                                     <td class="column6"><?=$linha['tipo']?></td>                                     <td class="column6"><?=$linha['data']?></td>                                     <td class="column6">                                     <input type=checkbox name="banco[]" value="1"><?=$linha['status']?>                                     </td>                                 </tr>                                </tbody>                         <?php                     // finaliza o loop que vai mostrar os dados                     }while($linha = mysql_fetch_assoc($dados));                         // fim do if                         }                         ?>                     </table>                     <div class="container-contact2-form-btn">                                 <div class="wrap-contact2-form-btn">                                     <div class="contact3-form-bgbtn"></div>                                     <button class="contact2-form-btn" type="submit" value="Enviar" name="enviar">                                         Atualizar                                     </button>                                 </div>                             </div>                 </div>             </div>         </div>     </div> </form>   <!--===============================================================================================-->       <script src="vendor/jquery/jquery-3.2.1.min.js"></script> <!--===============================================================================================-->     <script src="vendor/bootstrap/js/popper.js"></script>     <script src="vendor/bootstrap/js/bootstrap.min.js"></script> <!--===============================================================================================-->     <script src="vendor/select2/select2.min.js"></script> <!--===============================================================================================-->     <script src="js/main.js"></script> </body> </html> <?php // tira o resultado da busca da memória mysql_free_result($dados); ?>
×

Informação importante

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