Jump to content
RX3Info

Select com operação matemática

Recommended Posts

Boa Tarde!

Pessoal,

Estou precisando realizar um cálculo dentro de uma select, mas não estou conseguindo, segue abaixo a select sem as operações e um exemplo (que não funcionou) logo abaixo:

 

Este código está funcionando:

select A.CODPRODUTO, 
       A.LOTE, 
       A.QTD, 
       A.`LOCAL`, 
       A.OT, 
       A.ALTUSU, 
       A.ALTMOM, 
       B.CODPRODUTO, 
       B.DESCRICAO, 
       B.CUSTO, 
       C.ICMS_VALOR, 
       C.IPI_VALOR, 
       C.COFINS_VALOR, 
       C.QTD
from proqtd as A
inner join produto as B
on a.CODPRODUTO = B.CODPRODUTO
inner join nfeprodu as C
on B.CODPRODUTO = C.PRODUTO

 

Este não funciona e da erro devido ao cálculo.

select A.CODPRODUTO, 
       A.LOTE, 
       A.QTD, 
       A.`LOCAL`, 
       A.OT, 
       A.ALTUSU, 
       A.ALTMOM, 
       B.CODPRODUTO, 
       B.DESCRICAO, 
       (B.CUSTO, - C.ICMS_VALOR, - C.IPI_VALOR, - C.COFINS_VALOR, / C.QTD) as CustoSemImpostos
from proqtd as A
inner join produto as B
on a.CODPRODUTO = B.CODPRODUTO
inner join nfeprodu as C
on B.CODPRODUTO = C.PRODUTO

 

O que eu preciso é o seguinte, que me traga os itens com os valores sem os impostos, veja acima que a tentativa está sendo de pegar o valor de custo de um item, subtrair os impostos e dividir pela quantidade em estoque, desta forma, tenho o valor da unidade de cada item sem os impostos, mas não estou conseguindo.

 

Se alguém puder me ajudar com um exemplo, ficarei muito agradecido.

Obrigado!

 

Share this post


Link to post
Share on other sites

Creio que basta

 

((B.CUSTO - C.ICMS_VALOR - C.IPI_VALOR - C.COFINS_VALOR)/ C.QTD)) as CustoSemImpostos

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By iguulima
      É possivel realizar uma consulta SQL em duas colunas da mesma tabela usando outra função que não seja o AND ou OR? Segue o meu Select ate agora:
       
      (SELECT * FROM product WHERE comid = $idcom AND status = 'Ativo' AND categ = $category AND nameprod like'%$search%'  ORDER BY id DESC)  
      Por exemplo se eu colocar um AND após buscar o nameprod, no nome do produto não tiver a palavra chave ele também não irá buscar. Ou se colocar um OR ele anulo as outras condições até onde eu sei.
      Iniciante em programação.
    • By lezão
      Boa noite!
      Td bem com vcs?
      Estou usando esse código mas não retorna nada!
       
      Alguém pode me ajudar ?
       
       
      <?php $sql = mysqli_query($link, "SELECT ver_post, COUNT(ver_post) AS Quantidade FROM tab_comentarios where ver_post = 'red' Group by ver_post"); ?> Variável
      <?php echo $Quantidade; ?>  
    • By lezão
      Boa tarde, pessoal!
      tenho um codigo que peguei de uma video aula, na video aula funciona normal, mas comigo naun esta funcionando!
      os codigos estaun identicos e em meu server naun roda.
      alguem pode me ajudar?
       
      veja o codigo index.php
      <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <title>Carrinho de Compras</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" /> </head> <body> <div class="container"> <div class="row"> <?php $pdoConnection = require("conexao.php"); $sql = mysqli_query($link, "SELECT * FROM tab_pedido"); //$qr = mysql_query($sql) or die (mysql_error()); while($line = mysqli_fetch_array($sql)){ $Nome_produto = $line['Nome_produto']; $Valor_produto = $line['Valor_produto']; $Descricao_produto = $line['Descricao_produto']; $Foto_produto = $line['Foto_produto']; $id_produtos = $line['id_produtos']; ?> <div class="col-4"> <div class="card"> <div class="card-body"> <h4 class="card-title"><?php echo $Nome_produto;?></h4> <h4 class="card-title"><img src="<?php echo $Foto_produto; ?>" style="border-radius: 10px;" width="75px" height="75px" /></h4> <h6 class="card-subtitle mb-2 text-muted"> R$<?php echo number_format($Valor_produto, 2, ',', '.')?> </h6> <a class="btn btn-primary" href="teste_carrinho.php?acao=add&id=<?php echo $id_produtos;?>" class="card-link">Comprar</a> </div> </div><br/> </div> <?php } ?> </div> </div> </body> </html> codigo carrinho.php
      <?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } //ADICIONA PRODUTOS if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = intval($_GET['id_produtos']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; } else { $_SESSION[‘carrinho’][$id] += 1; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id_produtos = intval($_GET['id_produtos']); if(isset($_SESSION['carrinho'][$id_produtos])){ unset($_SESSION['carrinho'][$id_produtos]); } } //ALTERAR QUANTIDADE if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id_produtos => $qtd){ $id_produtos = intval($id_produtos); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['carrinho'][$id_produtos] = $qtd; }else{ unset($_SESSION['carrinho'][$id_produtos]); } } } } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" /> </head> <body> <div class="container"> <div class="card mt-5"> <div class="card-body"> <h4 class="card-title">Carrinho</h4> <a href="teste_index.php">Lista de Produtos</a> </div> </div> <form action="?acao=up" method="post"> <table class="table table-strip"> <thead> <tr> <th>Produto</th> <th>Quantidade</th> <th>Preço</th> <th>Subtotal</th> <th>Ação</th> </tr> </thead> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo'<tr> <td colspan="5">Não há produto no carrinho</td> </tr>'; } else { include "conexao.php"; $total = 0; foreach($_SESSION['carrinho'] as $id_produtos => $qtd){ $sql = "SELECT * FROM tab_pedido WHERE id_produtos = '$id_produtos'"; $qr = mysql_query($sql) or die (mysql_error()); $ln = mysql_fetch_assoc($qr); $Nome_produto = $ln['Nome_produto']; $Valor_produto = number_format($ln['Valor_produto'], 2, ',', '.'); $sub = number_format($ln['Valor_produto'] * $qtd, 2, ',', '.'); $total += $ln['Valor_produto'] * $qtd; echo ' <tr> <td>'.$Nome_produto.'</td> <td><input type="text" size="3" name="prod['.$id_produtos.']" value="'.$qtd.'" /></td> <td>R$ '.$Valor_produto.' </td> <td>R$ '.$sub.'</td> <td><a href="?acao=del&id_produtos='.$id_produtos.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',','.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } ?> </tbody> </form> </table> </body> </html> aonde eu estou errando????
    • By Thiago Btos
      Boa tarde galera.
       
      Fiz um select que tras 4 informações do banco (matricula, nome, data e hora)
      SELECT QD1_MAT, RA_NOME, QD1_DTBAIX AS DATA, QD1_HRBAIX FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' ORDER BY QD1_DTBAIX, QD1_HRBAIX Retornando os seguintes registros:

       
       
       
      Preciso retornar somente as linhas em amarelo, que seria a seguinte condição.
      Caso tiver alguma matricula igual, trazer somente o registro com a maior data, junto com seu respectivo horário.
       
       
      O mais próximo que consegui chegar foi utilizando o MAX para data e hora, e agrupando o restante dos campos.
      SELECT QD1_MAT,RA_NOME,MAX(DATA), MAX(QD1_HRBAIX) FROM ( SELECT QD1_MAT, RA_NOME, QD1_DTBAIX AS DATA, QD1_HRBAIX FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' ) GROUP BY QD1_MAT,RA_NOME Porém na hora ele não pega o valor correspondente e sim o valor máximo.

       
       
      Ai estou travado nessa parte, como faço para trazer a hora corresponde sem o restante dos registros?
    • By MarcosAntonio
      boa tarde. 
      Estou precisando de um Select que retorne uma soma que ao chegar a determinado valor ela reinicie e continue fazendo sucessivamente
       select   pedido,   volume,   limite,   SUM(volume) over (order by pedido ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) saldo   from pedidos  group by pedido o select está retornando assim porém quero que toda vez que chegue ou passe do limite resete o saldo, por exemplo parar no 100 que é o limite e começar um novo saldo
      pedido     volume    limite    saldo  1             70            100        70  2             10            100        80  3             20            100        100  4             50            100        150  5             30            100        180  
      preciso que ele soma o volume enquanto o saldo seja <= que o "limite", quando passar pare de somar e comece outra soma começando do 0, como no exemplo abaixo.
      pedido    volume    limite    saldo  1             70            100        70  2             10            100        80  3             20            100        100  4             50            100        50  5             30            100        80  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.