Ir para conteúdo
rorlando

select em diversas tabelas

Recommended Posts

Bom dia!

tento fazer consulta em várias tabelas. tudo vai bem até a 3ª, a partir da 4ª a ampola da consulta fica rodando, mas não trás nenhum resultado. 

O código que estou utilizando para meu banco é o seguinte:

select so01.documento,so01.digito, so01.nome, so01.sexo, so01.situacao, so01.regional, 
       so01.categoria, so01.observacao, so01.tipo, so01.n_spprev, so02.endereco, so02.bairro, 
       so02.cidade, so02.estado, so02.cep, so02.aniversario,so03.rg, so03.cpf, so03.email, 
       so04.estado_civil, so04.ddd, so04.telefone, so04.graduacao, so04.nascimento, so04.admissao, 
       so04.admor
from so01, so02, so03, so04
where so01.documento=so02.documento 
and so01.documento=so03.documento 
and so01.documento=so04.documento
and so01.situacao <> 'demitido' 
and so01.tipo <> 'entidade'
order by so01.regional, so01.tipo

Quando não incluo a tabela so04 e suas referências eu obtenho o retorno.

alguém teria a solução para meu problema? mesmo que tenha que alterar todo o código.

Obrigado.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

As chaves de todos os relacionamentos foram informadas no "where" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim Motta!

todas as tabelas tem um campo documento. Até consegui, com o comando, trazer os registros, mas demora muito para a resposta, além do que, existem documentos iguais, sendo diferenciados por um campo "dígito".

Sabe se existe uma outra forma para eu fazer os relacionamentos? e que fique com um código mais limpo e rápido?

Obrigado por enquanto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu!

Vou pesquisar mais e ver o que acho, pois não tenho o conhecimento necessário para resolver o problema.

Vamos caminhando.

Obrigado.

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 empirerock
      Boa tarde. Preciso de ajuda. Não consigo resolver esta situação.
      Neste código, o retorno está se baseando somente no primeiro item da lista.
      O que preciso é que se em alguma linha, o Volume_Restante for maior que zero e menor que Volume_Total, o status seja 'P'.
      E se todas as linhas de Volume_Restante forem iguais a zero, então status = 'T'.
      E se todas as linhas de Volume_Restante forem iguais a Volume_Total, então status = 'N'.
      Só que nesse caso, ele viu a primeira linha que volume_restante era zero, e jogou no status 'T', ignorando a outra linha que tem valor 1.
      Abaixo print da tela da lista de produtos para entrega.
       
      Script
      include "topop.php"; include "mysql.php"; $ped_venda_id = 13; $sql = mysql_query ("SELECT pvi.ped_venda_id, IF(pvi.volume_restante = 0, 'T', IF(pvi.volume_total = pvi.volume_restante, 'N', 'P')) as 'status' FROM ped_vendas_item as pvi WHERE ped_venda_id = '$ped_venda_id' ") or die(mysql_error()); while($r = mysql_fetch_array($sql)){ $status = $r['status']; } echo $status;  

    • Por Eliabe Andrade
      Boa noite pessoal, estou iniciando em programação web, e já estou desenvolvendo um projeto pequeno para a empresa que trabalho e a minha dificuldade é a seguinte, possuo um campo SELECT/OPTION, onde o usuário seleciona o produto e  caso ele queira adicionar mais produtos é só clicar no botão adicionar, até tudo ok, a minha dificuldade esta em fazer com que os valores dos produtos se somem em um INPUT, até consegui exibir o valor mas quando adiciono mais um campo e seleciono o produto, ao invés dele somar ele substitui o valor do produto anterior, segue abaixo meu teste que até agora por zilhões de tentativas não obtive exito e agora peço ajuda aos senhores que tem mais experiência.
       
      <?php include_once("../conexao/conexao.php"); $conexao = conexao::getInstance(); $sql = "SELECT * FROM produtos"; $stm = $conexao->prepare($sql); $stm->execute(); $produtos = $stm->fetchAll(PDO::FETCH_OBJ); ?> <!doctype html> <html lang="pt-br"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Cadastro de Cliente</title> <link rel="stylesheet" type="text/css" href="../administrativo/css/bootstrap.min.css" rel="stylesheet" media="screen"> <link href="../administrativo/css/bootstrap-datetimepicker.min.css" rel="stylesheet" media="screen"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="../administrativo/js/jquery.mask.js"></script> <style type="text/css"> body { margin: 0; padding: 0;} .box { margin: 0 auto; width: 800px;} #fieldsHidden{ display:none;} #alvo{padding:10px 5px;} .margens{ margin-left: 2px; margin-right: 2px; } #p{ margin-left: 2px; margin-right: 2px; } </style> <script type="text/javascript"> $(document).ready(function(){ $('body').on('change','.prod_tipo' , function() { var id = $(this).data('id'); $('#' + id).val($(this).find(':selected').data('valor')); }); $('body').on('change','.prod_tipo' , function() { function convertMoeda(n, c, d, t) { c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0; return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); } var id = $(this).data('id'); var soma = 0; $(this).find(':selected').each(function(id, element){ soma = soma + parseFloat($(element).data('somar_valor' + id)) }) $('#valor_total').val(convertMoeda(soma)); }); var contar = 1; $("#add").on('click', function(){ var select = '<div class="form-group"><div class="form-inline row margens">'; select += '<div class="form-group col">'; select += '<label for="vnd_tipo_vendedor" class="label label-small" style="color: black;">TIPO PRODUTO:</label><br><select data-id="' + contar + '" data-conta_campos="' + contar + '" class="form-control custom-select prod_tipo" name="prod_tipo[]" id="prod_tipo" data-error="Por favor, selecione um produto." required><option value="" >PRODUTO: </option><?php foreach($produtos as $produto): ?><option value="<?= $produto->produto ?>" name="id" data-valor="<?= number_format($produto->valor, 2, ',','.') ?>" data-somar_valor0="<?= $produto->valor ?>" ><?= $produto->produto ?></option><?php endforeach;?></select>'; select += '<div class="help-block with-errors"></div></div>'; select += '&nbsp;<div class="form-group col">'; select +='<label for="vnd_tipo_vendedor" class="label label-small" style="color: black;">VALOR:</label><br><div class="input-group"><span class="input-group-addon">R$</span><input id="' + contar + '" class="form-control dinheiro" id="prod_valor" name="prod_valor[]" type="text" value="" size="6" required></div>'; select +='<div class="help-block with-errors"></div></div>'; select +='</div>&nbsp;<button type="button" class="btn btn-danger btn-sm del" id="add"><span class="glyphicon glyphicon-minus"></span>&nbsp;Remover</button></div>'; contar++; $("#produtos").append(select); return false; }); $(document).on('click', '.del', function(){ $(this).parent().remove(); }); }); </script> <script type="text/javascript"> $(document).ready(function(){ //$('#cod_cli').mask('999999999'); //$('#rg').mask('99.999.999', {reverse: true}); //$('.cpf').mask('000.000.000-00', {reverse: true}); //$('#cep').mask('99.999-999'); //$('#telefone').mask('(99) 9999-9999'); //$('#celular').mask('(99) 99999-9999'); //$('#exame').mask('000.000.000.000.000,00', { // reverse: true //}); //$('#armacao').mask('000.000.000.000.000,00', { // reverse: true //}); //$('#prod_valor').mask('000.000.000.000.000,00', { // reverse: true //}); $('.dinheiro').mask('000.000.000.000.000,00', { reverse : true }); }); </script> </head> <body> <div class='container-fluid'> <button type="button" class="btn btn-primary btn-sm" id="add"><span class="glyphicon glyphicon-plus"></span>&nbsp;Adicionar Produto</button><br><br> <form class="form form-inline" action="" method="post"> <fieldset> <div class="form-group"> <div class="form-inline row margens"> <div class="form-group col"> <label for="prod_tipo" class="label label-small" style="color: black;">TIPO DE PRODUTO:</label><br> <select data-id="0" data-conta_campos="0" class="form-control custom-select prod_tipo" name="prod_tipo[]" id="prod_tipo" data-error="Por favor, selecione um produto." required > <option value="" >PRODUTO: </option> <?php foreach($produtos as $produto): ?> <option value="<?= $produto->produto ?>" name="id" data-valor="<?= number_format($produto->valor, 2, ',','.') ?>" data-somar_valor0="<?= $produto->valor ?>" ><?= $produto->produto ?></option> <?php endforeach;?> </select> <div class="help-block with-errors"></div> </div> <div class="form-group col"> <label for="prod_valor" class="label label-small" style="color: black;">VALOR:</label><br> <div class="input-group"> <span class="input-group-addon">R$</span> <input class="form-control dinheiro" id="0" name="prod_valor[]" type="text" value="" size="6" required> </div> <div class="help-block with-errors"></div> </div> </div> </div><br> <div class="form-group"> <div class="form-inline row margens" id="produtos"> <!-- INPUT'S DINAMICOS --> </div> </div><br> <div class="form-group"> <div class="form-inline row margens"> <div class="form-group col"> <label for="prod_valor" class="label label-small" style="color: black;">VALOR TOTAL:</label><br> <div class="input-group"> <span class="input-group-addon">R$</span> <input type="text" name="valor_total" id="valor_total" class='form-control dinheiro'/> </div> <div class="help-block with-errors"></div> </div> </div> </div> </fieldset> </form> </div> </body> <script src="../administrativo/js/bootstrap.min.js"></script> </html>  
    • Por coolroot
      Prezados,
      Estou precisando de ajuda com um select que eu fiz na marra, porem, preciso aprimorar e eu confesso que não tenho conhecimento suficiente no assunto.
      O problema é o seguinte, estou trazendo dados de uma base do zabbix, no momento, o select traz o resultado do ultimo valor inserido, preciso trazer dos três ultimos e fazer uma média da coluna value.
       
      SELECT h.name, h.description, (SELECT history.VALUE FROM history WHERE history.itemid = i.itemid ORDER BY history.clock DESC LIMIT 1) AS 'value' FROM zabbix.hosts AS h JOIN hosts_groups AS hg ON hg.hostid = h.hostid JOIN groups AS g ON g.groupid = hg.groupid JOIN items AS i ON i.hostid = h.hostid WHERE g.name = 'filiais' AND i.name = 'ICMP loss' AND h.status = 0;  
      Anexei um print de como os dados estão vindo.
       
       
      É viável fazer isso? o que eu poderia usar
       

    • Por Blogger
      Boa noite pessoal, eh meu primeiro topico aqui, preciso muito da ajuda de voces para resolver uma questao em meu site...
      Tenho um aplicativo que puxa algumas informacoes do meu site via http.. certo..
      uma delas sao 2 horarios, de abertura e de fexamento, supoe o seguinte:
       
      HorInicio: 8:00
      Horfim: 18:00     
      No php fica assim..
      (esse date(`w`) == 2) confere se hoje eh terca feira, tenho um desse para cada dia da semana)
      if(date('w') == 2){ // caso a hora atual for maior ou igual a hora inicio e menor ou igual ao fim ele manda true para meu app e ele entende que esta aberto if(date('H:i') >= $ini AND date('H:i') <= $fim){ echo true; } else { echo 0; } } Eu consegui configurar de uma forma que ele entenda que o estabelecimento fica aberto entre esses dois horarios, porem, surgiu a necessidade de colocar o seguinte:
      HorInicio:18:00
      Horfim: 2:00 (Sendo esse horario duas horas da madrugada do dia seguinte)
       
      a questao eh, como fazer meu codigo de php entender que essas 2:00 se trata do dia seguinte? pois da forma atual ele pega o intervalo entre 2:00 e 18:00 (3:00, 4:00, ate as 18:00)
      e eu gostaria que fosse das 18:00 para frente (19:00, 20:00, ate as 2:00)
       
      No meu banco esta definido apenas como tempo atual sem a data, eh possivel fazer sem cadastrar uma data no banco? apenas com o tempo... e se nao for possivel, como fazer isso ser automatico? toda vez que ele for entrar nesse php ele entender qual dia eh hoje e que fica aberto ate amanha ate que horas..
       
      Desculpe se ficou meio confuso.. mas qualquer duvida podem perguntar que eu vou responder, espero alguma luz, obrigado!
       
    • Por felipepai
      Tenho uma tabela semelhante a esta, como listo todos os produtos são AZUL e GRANDE
      no caso seria o produto 1 e produto 4
       
      ID produto1 Atributo Valor 1 produto1 cor azul 2 produto1 tamanho grande 3 produto2 cor vermelho 4 produto2 tamanho grande 5 produto3 cor branco 6 produto3 tamanho pequeno 7 produto4 cor azul 8 produto4 tamanho grande
×

Informação importante

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