-
Conteúdo Similar
-
Por Noobweb
Boa noite a todos!
Desde já peço desculpas caso esteja postando no lugar errado.
Bom, eu sei que aqui não é o Fórum "faz pra mim", mas estou precisando muito de ajuda para finalizar meu TCC (php e mysql não são minha area)
Tenho uma tabela no BD que guarda os valores de tensão, corrente, potência e data e hora.
Preciso fazer a soma das horas entre determinado período de tempo (15 dias por exemplo) e após isso fazer a média dos valores de outra coluna neste período.
Para isso, peguei um código na internet (perdi a referência) que estou tentando fazer um "range" no período.
filter.php
<?php //filter.php if(isset($_POST["from_date"], $_POST["to_date"])) { $connect = mysql_connect('localhost', 'usuário', 'senha'); @mysql_select_db('tabela') or die( "Unable to select database"); $output = ''; $query = " SELECT * FROM medidas WHERE horario BETWEEN '".$_POST["from_date"]."' AND '".$_POST["to_date"]."' "; $result = mysql_query($query); $row = mysql_fetch_array($result); $output .= ' <table class="table table-bordered"> <tr align="center"> <th width="25%">Data</th> <th width="25%">Corrente</th> <th width="25%">Tensão</th> <th width="25%">Potência</th> </tr> '; if(mysql_num_rows($result) > 0) { while($row = mysql_fetch_array($result)) { $output .= ' <tr align="right"> <td><?php echo $row["horario"]; ?></td> <td><?php echo $row["corrente"]; ?></td> <td><?php echo $row["tensao"]; ?></td> <td><?php echo $row["potencia"]; ?></td> </tr> '; } } else { $output .= ' <tr> <td colspan="5">No Order Found</td> </tr> '; } $output .= '</table>'; echo $output; } ?> e index.php
<?php $connect = mysql_connect('localhost', 'usuário', 'senha'); @mysql_select_db('tebela') or die( "Unable to select database"); $query = "SELECT * FROM medidas ORDER BY horario ASC"; $result = mysql_query($query); $row = mysql_fetch_array($result) ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <head> <title></title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> </head> <body> <br /><br /> <div class="container" style="width:900px;"> <h2 align="center">Teste</h2> <h3 align="center">Horario</h3><br /> <div class="col-md-3"> <input type="text" name="from_date" id="from_date" class="form-control" placeholder="De" /> </div> <div class="col-md-3"> <input type="text" name="to_date" id="to_date" class="form-control" placeholder="Até" /> </div> <div class="col-md-5"> <input type="button" name="filter" id="filter" value="Filtrar" class="btn btn-info" /> </div> <div style="clear:both"></div> <br /> <div id="order_table"> <table class="table table-bordered"> <tr> <th width="25%">Data</th> <th width="25%">Corrente</th> <th width="25%">Tensão</th> <th width="25%">Potência</th> </tr> <?php while($row = mysql_fetch_array($result)) { ?> <tr align="right"> <td><?php echo $row["horario"]; ?></td> <td><?php echo $row["corrente"]; ?></td> <td><?php echo $row["tensao"]; ?></td> <td><?php echo $row["potencia"]; ?></td> </tr> <?php } ?> </table> </div> </div> </body> </html> <script> $(document).ready(function(){ $.datepicker.setDefaults({ dateFormat: 'yy-mm-dd' }); $(function(){ $("#from_date").datepicker(); $("#to_date").datepicker(); }); $('#filter').click(function(){ var from_date = $('#from_date').val(); var to_date = $('#to_date').val(); if(from_date != '' && to_date != '') { $.ajax({ url:"filter.php", method:"POST", data:{from_date:from_date, to_date:to_date}, success:function(data) { $('#order_table').html(data); } }); } else { alert("Please Select Date"); } }); }); </script> Resumindo...
Nestes arquivos, quando aplico o flitro de data, não aparece absolutamente nada.
Não sei como somar a quantidade de horas (pode ser minutos, melhor ainda) em um período.
E ainda por cima preciso fazer uma média de valores em outra coluna, mas no periodo escolhido.
-
Por hwrry
Bom dia! Preciso realizar um calculo que me retorne a quantidade de horas que uma maquina ficou parada, em meu banco de dados tenho dois campo data/minutos, que são de data parada e data retorno, os mesmos estão no seguinte formato:
$dataIni = '201704120850' ; $dataFim = '201704120955';
Até ai consigo fazer o cálculo com a seguinte função:
$dtIni = '201704120850'; $dtFim = '201704120955'; $datatime1 = new DateTime($dtIni); $datatime2 = new DateTime($dtFim); $data1 = $datatime1->format('Y-m-d H:i:s'); $data2 = $datatime2->format('Y-m-d H:i:s'); $data1 = strtotime($data1); $data2 = strtotime($data2); $nHoras = ($data2 - $data1) / 3600; $nMinutos = (($data2 - $data1) % 3600) / 60; $total = sprintf('%02d:%02d', $nHoras , $nMinutos); echo $total;
O problema agora é que preciso levar em consideração apenas o horário de funcionamento das maquinas que seria das 07:30 até 12:00 e das 13:30 as 17:48, e desconsiderar os sábados, domingos e feriados.
-
Por hwrry
Bom dia! Preciso realizar um calculo que me retorne a quantidade de horas que uma maquina ficou parada, em meu banco de dados tenho dois campo data/minutos, que são de data parada e data retorno, os mesmos estão no seguinte formato:
$dataIni = '201704120850' ;
$dataFim = '201704120955';
Até ai consigo fazer o cálculo com a seguinte função:
$dtIni = '201704120850';
$dtFim = '201704140851';
$datatime1 = new DateTime($dtIni);
$datatime2 = new DateTime($dtFim);
//echo '<pre>'; print_r($datatime1); die;
$data1 = $datatime1->format('Y-m-d H:i:s');
$data2 = $datatime2->format('Y-m-d H:i:s');
//echo '<pre>'; print_r($data1); die;
$data1 = strtotime($data1);
$data2 = strtotime($data2);
$nHoras = ($data2 - $data1) / 3600;
$nMinutos = (($data2 - $data1) % 3600) / 60;
$total = sprintf('%02d:%02d', $nHoras , $nMinutos);
-
Por Lucas S. Rosa
Olá pessoal tudo bem?
É o seguinte estou tentando fazer um script em SQL no Oracle que retorna o "código, nome, valor total vendido" do produto mais vendido em um determinado período.
Fiz o script, mas ele tá retornando como resultado todos os produtos vendido no período, e o que eu gostaria era que ele apenas me retorna o produto mais vendido. Eu coloquei a função agregada MAX(...), mas mesmo assim é retornado todos os produtos vendido no período, segue meu script.(OBS: ele tá funcionando, o problema é que não está retornando apenas o produto mais vendido, mas todos os produtos vendidos).
SELECT SUB.SUB_CODIGO, SUB.SUB_NOME, MAX(TESTE.TOTAL) FROM SUBSTANCIA SUB INNER JOIN (SELECT ITENS.SUB_CODIGO, SUM(ITENS.ITEM_NOT_SAI_QTDE * ITENS.ITEM_NOT_SAI_PRECO) AS TOTAL FROM ITENS_NOTA_SAIDA ITENS INNER JOIN NOTA_SAIDA NOTA ON NOTA.NOT_SAI_CODIGO = ITENS.NOT_SAI_CODIGO WHERE NOT_SAI_DATA BETWEEN '17/03/2017' AND '17/03/2017' GROUP BY ITENS.SUB_CODIGO ) TESTE ON (SUB.SUB_CODIGO = TESTE.SUB_CODIGO) GROUP BY SUB.SUB_CODIGO, SUB.SUB_NOME; Em anexo tá o resultado que esta retornando pra vocês terem uma ideia do que eu to falando.
Se alguém poder me ajudar eu agradeço.
resultado_sql.pdf
-
Por eronventer
Olá pessoal.
Estou com um problema que não estou conseguindo resolver, preciso listar todos os colaboradores que fazem aniversário num período de 30 dias a partir da data vigente, porém minha query não retorna nada e não sei onde estou errando... Agora se eu alterar o intervalo para "30 DAY" ele lista mas somente os do mês, mas como hoje é 1/12 ele deveria me listar até 1/1.
SELECT id, nome, data_nascimento FROM colaboradores WHERE DAYOFYEAR(data_nascimento) BETWEEN DAYOFYEAR(CURDATE()) AND DAYOFYEAR(ADDDATE(CURDATE(), INTERVAL 1 MONTH))
-