Jump to content
lucascatani

Unir 2 selects

Recommended Posts

Preciso fazer uma subtração entre produtos comprados e retirados. Tenho abaixo o meu código, um select que soma os comprandos e outro os retirados, preciso retornar um valor em JSON.

$loteproduto = mysql_real_escape_string( $_REQUEST['loteproduto'] ); /*$loteproduto =6635544;*/
	$idproduto = mysql_real_escape_string( $_REQUEST['idproduto'] ); /*$idproduto = 9;*/

	$quantidades = array();
	
	
	/*Lote*/	
	$sqllote = mysql_query("SELECT loteproduto FROM entradas WHERE identrada = '$loteproduto';");
	while($resultlote = mysql_fetch_assoc($sqllote))
	{
		$loteproduto1 = $resultlote['loteproduto'];
	}	
	
	/*SQL Compradas*/
	$sql = "SELECT SUM(quantidadecomprada) AS TOTAL FROM entradas WHERE loteproduto='$loteproduto1' AND idproduto = 			'$idproduto'";
	
	$res = mysql_query( $sql );
	while ( $row = mysql_fetch_assoc( $res ) ) {
		$quantidades[] = array(			
			'quant'	=> $row['TOTAL'],
		);
	}
	
	/*SQL Retiradas*/
	$sqlretiradas = "SELECT SUM(quantidaderetirada) AS TOTALRETIRADAS FROM retiradas WHERE loteproduto='$loteproduto1' AND idproduto = 			'$idproduto'";
	
	$resretiradas = mysql_query( $sqlretiradas );
	while ( $rowretiradas = mysql_fetch_assoc( $resretiradas ) ) {
		$quantidadesretiradas[] = array(			
			'quantretiradas'	=> $rowretiradas['TOTALRETIRADAS'],
		);
	}

	echo( json_encode( $quantidades ) );
	

Share this post


Link to post
Share on other sites

algo assim com JOIN:

<?php

  $loteproduto = mysql_real_escape_string( $_REQUEST['loteproduto'] ); /*$loteproduto =6635544;*/
  $idproduto = mysql_real_escape_string( $_REQUEST['idproduto'] ); /*$idproduto = 9;*/

  $quantidades = array();
  
  /*Lote*/  
  $sql = mysql_query("SELECT SUM(quantidadecomprada) AS TOTAL, SUM(quantidaderetirada) AS TOTALRETIRADAS
        FROM entradas 
        INNER JOIN retiradas
        ON entradas.idproduto = retiradas.idproduto AND entradas.loteproduto = retiradas.loteproduto
        WHERE retiradas.loteproduto='$loteproduto' AND retiradas.idproduto = '$idproduto'");

  // echo $sql;

  while ( $row = mysql_fetch_assoc( $sql ) ) {
    $quantidades[] = array(     
      'quant' => $row['TOTAL'],
      'quantretiradas'  => $row['TOTALRETIRADAS']
    );
  }

  echo( json_encode( $quantidades ) );
verifique a query

Share this post


Link to post
Share on other sites

Chegamos nessa query, que mostra a quantidade comprada certo, porém mostra a quantidade retirada errado:

SELECT SUM(quantidadecomprada) AS TOTAL, SUM(quantidaderetirada) AS TOTALRETIRADAS
       FROM entradas
       INNER JOIN retiradas
       ON entradas.idproduto = retiradas.idproduto 
       AND entradas.loteproduto = retiradas.loteproduto
       WHERE retiradas.loteproduto=6635544 AND retiradas.idproduto = 9 
       AND entradas.loteproduto=6635544 AND entradas.idproduto = 9

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 Overtron8000
      Ola Pessoas,
      Recentemente fiz uma prova para Desenvolvedor Javascript jr em uma empresa e tinha varias questões para escrever o código NA MÃO  e uma delas me deixou encabulado por exigirem que um junior saiba de cór isso era a seguinte pergunta:
       
      Dado o JSON abaixo construa um código que faça o calculo da media do parâmetro "time"  quando "type" for semelhante a "call" e o máximo valor para "time" quando "type for semelhante a "ping". Considere que o array events poderá conter milhões de objetos portanto seu código deve levar em consideração o processamento assíncrono do Node.js de forma que o resultado seja síncrono, ou seja, o codigo so deve completar quando o resultado do s cálculos estiverem prontos.
      JSON : events = { [ {type:"ping", time :10) [ {type:"ping", time: 5) [ {type:"call", time: 99) [ {type:"call", time: 67) [ {type:"ping", time: 7) [ {type:"call", time: 127) }  
      Isso tudo para fazer no resto da folha que sobrou alem da pergunta, se alguém saber uma solução poste ai que estou curioso ate hoje, sei que leva o conceito de promisses assíncronas mas ainda não cheguei nessa parte
       
       
       
       
                                   
       
       
    • By ndias
      Estou com duvida se minha conexão está encerrando.
       
      Utilizo PDO para me conectar:
       
      public static function getDb(){ try { $db = new \PDO( 'mysql:host=localhost;dbname=xyz;charset=utf8', 'xyz', 'xyz1234', array( \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION ) ); return $db; } catch (PDOException $e) { echo "Erro de Conexão " . $e->getMessage() . "\n"; exit; } } public function __construct(\PDO $db) { $this->db = $db; } public function verifica(){ $sql = "SELECT * FROM tabela "; $result = $this->db->query($sql); $rows = $result->fetch(); if($rows){ }else{ } } public function __destruct() { unset($this->db); foreach ($this as $key => $value) { unset($this->$key); } } Estou fazendo certo? Como posso verificar se a conexão está ficando aberta?
    • By agodiniz
      Fala galera, estou com um problema e não sei como resolver. Até encontrei umas respostas, mas utilizando Php e Mysql. Preciso que a resposta seja utilizando as tecnologias javascript (node) e Mysql.
      Gostaria de capturar dados de um formulário utilizando array e salvando o mesmo num banco de dados.
       
      Ex:
      Imagine um 3 inputs do tipo text que recebem um valor que é inserido pelo cliente e que cada input, possa receber valores diferentes (como se cada um fosse uma variável 'titulo', 'conteudo' e 'autor')
      quero que depois que o cliente enviar os dados que por ele foram inputados, esses dados sejam enviados para as variáveis 'titulo', 'conteudo' e 'autor'.
      Logo depois quero declarar um array que receba essas variáveis [titulo, conteudo, autor] e desejo armazenar o array no banco de dados utilizando Mysql
       
      Desde já, agradeço!
    • By Robson Barros da Rocha
      Boa noite.
       
      Estou com problemas para exibir dados pelo .JSON :( No banco de dados, tenho 3 rows (três resultados), mas, ele mostra somente um. Alguém poderia me dizer o que posso ter errado?
       
      O JSON retornado é:
      [ { "id": 7, "linha": "TESTE", "chegada": "18:45:00", "saida": "19:05:00", "tempoTabela": "0:20", "tempoParada": "TESTE", "previsao": "TESTE", "status": "<span data-viagem=\"1\" class=\"label label-warning\"><i class=\"fa fa-clock\" title=\"Pendente\"></i> Pendente</span>" }, { "id": 8, "linha": "TESTE", "chegada": "18:45:00", "saida": "19:05:00", "tempoTabela": "0:20", "tempoParada": "TESTE", "previsao": "TESTE", "status": "<span data-viagem=\"1\" class=\"label label-warning\"><i class=\"fa fa-clock\" title=\"Pendente\"></i> Pendente</span>" } ] O scrip:
      $.ajax({ type: "GET", url: web +"include/ajax.php", timeout: 3000, datatype: 'JSON', contentType: "application/json; charset=utf-8", cache: false, beforeSend: function() { $('#loading').show(); }, error: function() { $('#loading').hide(); }, success: function(s) { var tr = s; $.each(tr,function(i, data){ if(data.emptyDay) { var item = '<tr><td colspan="10" align="center"><i class="fa fa-times text-danger"></i> <b>'+ data.emptyDay +'</b></td></tr>'; } else { var item = '<tr tr-id="'+ data.id +'"><td>#'+ data.id +'</td><td>'+ data.linha +'</td><td class="center">'+ data.chegada +'</td><td class="center">'+ data.saida +'</td><td class="center">'+ data.tempoTabela +'</td><td class="center">'+ data.tempoParada +'</td><td class="center">'+ data.previsao +'</td><td class="center">'+ data.status +'</td><td><i class="fa fa-pencil text-info" onclick="edit('+ data.id +')" style="cursor:pointer;"></i> | <i class="fa fa-times text-danger" onclick="deletes('+ data.id +')" style="cursor:pointer;"></i></td></tr>'; } $("#trHorarios").html(item); finalizar_viagem(data.id); NProgress.done(); }); } });  
    • By reis77
      Fala pessoal, estou ultimamente com um probleminha em um projeto no qual estou desenvolvendo e queria contar com o conhecimento de vocês para poder me ajudar.
      Então, eu fiz uma conexão com o banco de dados mysql PDO e quando o projeto inseri conteúdo lá ele aparece com caracteres estranhos no lugar de acentuações.
      Já fiz alguns procedimentos, mas não sei onde estou errando !
       
      A arquitetura do bando de dados.
       
      <?php
      ob_start();
      try {
          $con = new PDO("mysql:dbname=buscador2;host=localhost", "root", "",
           array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
          $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
      }
      catch(PDOExeption $e) {
           echo "Connection failed: " . $e->getMessage();
      }
      ?>
       
       
×

Important Information

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