Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodymb

Usar mesmo campo para duas consultas diferentes

Recommended Posts

Bom dia!

Estou fazendo um select em uma tabela de cupom fiscal e preciso que me mostre o operador do caixa e o supervisor que liberou a venda, que no caso é convênio.

A consulta que montei é a seguinte:

 

select  c.m00ad as CUPOM,
        c.m00ac as PDV,
        c.m02ak as VALOR,
        p.descricao as FINALIZADORA,
        c.m02ah as OPERADOR,
        f.nome as NOME_OP,
        c.m02ao as SUPERVISOR,
        f.nome as NOME_SUP
from zan_m02 c inner join tab_funcionario f
on c.m02ao = f.cod_funcionario
inner join tab_finalizadora p
on c.m02ai = p.cod_finalizadora
where c.m00af = to_date('09/03/20','dd/mm/yy')
and c.m00za = 3
and c.m00ac = 9
and c.m00ad = 379678
group by c.m00ad,c.m00ac,c.m02ak,p.descricao,c.m02ah,f.nome,c.m02ao;

 

A consulta me retorna o seguinte resultado:

image.png.cef5916af59045c6bab942a12944625c.png

 

Como podem ver, repetiu o mesmo nome (operador e supervisor), sendo que o código é diferente.

 

Isso acontece por que na tabela de funcionário o campo NOME serve para operador e supervisor e o que diferencia se é supervisor ou operador temos mais duas outras tabelas. A estrutura é assim:

 

tab_funcionario -> temos o campo cod_funcionario e nome (todos os funcionários cadastrados são armazenados nessa tabela)

tab_perfil -> temos os campos cod_perfil e descricao (todos os perfis cadastrados são armazenados nessa tabela)

tab_perfil_funcionario -> temos os campos cod_funcionario e cod_perfil (tabela que relaciona as tabelas tab_funcionario e tab_perfil)

 

A única coisa que preciso é que apareça no NOME_OP o nome do operador e não o nome do supervisor igual está aparecendo.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 28/03/2020 at 12:18, Motta disse:

zan_m02.m02ao sinaliza o funcionário , pelo que entendi , o que sinaliza o suprevisor.

 

Não seria o caso de instanciar duas vezes tab_funcionario ?

Olá Motta! Tudo bom?

Eu mudei o script mas ainda assim não resolveu, me trouxe o mesmo resultado.

 

select  c.m00ad as CUPOM,
        c.m00ac as PDV,
        c.m02ak as VALOR,
        p.descricao as FINALIZADORA,
        c.m02ah as OPERADOR,
        f_op.nome as NOME_OP,
        c.m02ao as SUPERVISOR,
        f.nome as NOME_SUP
from zan_m02 c inner join tab_funcionario f
on c.m02ao = f.cod_funcionario
inner join tab_funcionario f_op
on c.m02ao = f_op.cod_funcionario
inner join tab_finalizadora p
on c.m02ai = p.cod_finalizadora
where c.m00af = to_date('09/03/20','dd/mm/yy')
and c.m00za = 3
and c.m00ac = 9
and c.m00ad = 379678
group by c.m00ad,c.m00ac,c.m02ak,p.descricao,c.m02ah,c.m02ao,f.nome;

 

image.png.3b787f8c1029be7424545ed1a8cfd607.png

 

O NOME_OP deveria seri Miran e o NOME_SUP é a Tania.

 

image.png.89339b57737c32a580017108c6f81190.png

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Motta disse:

o que sinaliza o supervisor ?

São outras duas tabelas.

Tem a tabela tab_perfil, que são cadastrados todos os perfis do sistema, operador, supervisor, gerente, etc. E tem outra tabela, tab_perfil_funcionario, essa tabela relaciona o código do operador com o código do perfil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que sinaliza o supervisor ?

 

Ou seja como eu sei que Jair é supervisor do Guedes ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, Motta disse:

o que sinaliza o supervisor ?

 

Ou seja como eu sei que Jair é supervisor do Guedes ?!

Na estrutura do banco está assim:

 

tab_funcionario

image.png.1fea5ecbea3f57298ab7574c7324da4c.png

 

tab_perfil

image.png.481a2a0e5f80e34039f478a075e8d255.png

 

tab_perfil_funcionario

image.png.6a2da2fe5e58437da8abd41c30a501c1.png

nessa tabela, indica que o funcionário com código 9898(Tania), ela é supervisora, mas também é operadora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas como sei que Tania é supervisora de Mirian ?

ou seja o que amarra 255 a 9898 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 minutos atrás, Motta disse:

mas como sei que Tania é supervisora de Mirian ?

ou seja o que amarra 255 a 9898 ?

Na verdade não tem nada que amarra a supervisora à operadora. A supervisora é responsável pelas transações que as operadoras não têm permissão. Um cancelamento de cupom por exemplo, ou a liberação de um cliente sem saldo.

Na tabela de movimento, tem o campo com o código da operadora e outro campo com o código da supervisora. Esse campo da supervisora só alimentado, quando houve alguma operação que precisou da supervisora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Confesso ficar perdido agora se não tem link como exibir o supervisor !?

Compartilhar este post


Link para o post
Compartilhar em outros sites

select  c.m00ad as CUPOM,
        c.m00ac as PDV,
        c.m02ak as VALOR,
        p.descricao as FINALIZADORA,
        c.m02ah as OPERADOR,
        f.nome as NOME_OP,
        c.m02ao as SUPERVISOR,
        s.nome as NOME_SUP
from zan_m02 c inner join tab_funcionario f on c.m02ao = f.cod_funcionario
                              inner join tab_funcionario s on c.m02ao = s.cod_funcionario
 

inner join tab_finalizadora p on c.m02ai = p.cod_finalizadora
where c.m00af = to_date('09/03/20','dd/mm/yy')
and c.m00za = 3
and c.m00ac = 9
and c.m00ad = 379678
group by c.m00ad,c.m00ac,c.m02ak,p.descricao,c.m02ah,f.nome,c.m02ao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Em 11/04/2020 at 12:42, Motta disse:

O campo c.m02ao do join é o mesmo !?

eu trocaria o nome se fosse eu, mas como a consulta não é minha

 

até deixei desse jeito, já que a consulta já está trazendo o valor correto, o código vem certo, é só o nome que está vindo errado

image.png.115b555ef3d539d9ecf95fde807ef14c.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por lezão
      Bom dia, galera!
      Tudo bem com vcs?
       
      Tenho uma tabela Itens com os campos Descrição e nome do produto, quando eu coloco no select.
      Eu gostaria que me retorna-se, todos os nomes dos produtos e retornar apenas uma vez a Descrição.
       
      Select com ORDER BY
      "SELECT DISTINCT c.id, c.descricao, i.id_categoria, i.descricao_produto, i.id_item, i.nome_produto, i.imagem, i.preco, i.qntdade FROM tab_categoria AS c JOIN tab_itens AS i ON c.id = i.id_categoria WHERE c.id = i.id_categoria AND i.id_empresa = '$id_empresa' ORDER BY c.descricao" Select com GROUP BY,  até da certo, mas retorna apenas um produto.
      "SELECT DISTINCT c.id, c.descricao, i.id_categoria, i.descricao_produto, i.id_item, i.nome_produto, i.imagem, i.preco, i.qntdade FROM tab_categoria AS c JOIN tab_itens AS i ON c.id = i.id_categoria WHERE c.id = i.id_categoria AND i.id_empresa = '$id_empresa' GROUP BY c.descricao"  
      Veja como esta ficando do jeito que eu estou fazendo, com ORDER BY
      Select_com_ORDER_BY  
       
      E com o GROUP BY
      Select_com_GROUP_BY
       
    • Por aw10home
      Quando faço a consulta no phpMyadmim consigo o resultado esperado. Mas pelo visto não estou sabendo fazer direito em PHP. O que estou errando? Porque não consigo fazer a média (prtm) "aparecer"?
      abaixo meu código.
      <?php if (isset($_GET['$id_aluno'])){ $id_aluno = addslashes($_GET['$id_aluno']);} elseif (isset($_GET['id_aluno'])){ $id_aluno = addslashes($_GET['id_aluno']);}//addslashes evita sqlinjection else{ $id_aluno=(""); } $informacao=$con->prepare("SELECT a.id_aluno, a.nome, SUM(((b.prt*5)+(m.prt*3)+(v.prt*2))/10 ) as prtm FROM aluno a inner join avb1 b on a.id_aluno = b.id_aluno inner join avm2 m on a.id_aluno = m.id_aluno inner join avp v on a.id_aluno = v.id_aluno group by a.id_aluno, a.nome WHERE a.id_aluno = $id_usuario"); $informacao->execute(); ?> <!------------> <table class="cBolt"> <tr> <td>Avaliação</td> <td>Bim.</td> <td>Português</td> </tr> <?php while($linha=$informacao->fetch(PDO::FETCH_ASSOC)){ ?> <tr> <td>Média</td> <td>1º</td> <td><?php echo $linha['prtm'];?></td> </tr> <?php } ?> </table>  
    • Por lucianfpaula
      Galera tenha a seguinte duvida, tenho 3 tabelas onde estou trazendo os dados e preciso fazer um count em uma delas
       
      SELECT *  FROM tabela1 AS t1  INNER JOIN tabela2 AS t2 ON t1.idt1 = t2.idt2 INNER JOIN tabela3 AS t3 ON t3.idt3 = t1.idt1  
      a duvida é: quero manter o SELECT * mas também preciso de COUNT(t3.idT3)
      não sei se é possível fazer isso, mas gostaria de ter certeza antes de focar em outra solução
      desde já muito grato.
    • Por r.guerra
      Salve galera, boa tarde a todos.
      estou tendo um problema que ainda nao consegui enxergar... faço uma consulta mysql que funciona normalmente no proprio ambiente(mysql) mas ao solicitar a exibição do campo via php gera nao exibe e me tras um alerta.
       
      ****codigo php
      function monta_avaliacao($cpf){
          $query = mysqli_query($_SESSION["conector"],"SELECT c.*, a. cliente AS clientes FROM clientes AS c INNER JOIN avaliacoes AS a ON c.id = a.cliente WHERE c.cpf='$cpf'");
           $dados = mysqli_fetch_assoc($query);
          print $dados['c.cpf'];
           }
       
      *****sainda no html
      Notice: Undefined index: c.cpf in C:\xampp\htdocs\acus\inclusoes\funcoes.php on line 29
      Notice: Undefined index: a.pe in C:\xampp\htdocs\acus\inclusoes\funcoes.php on line 30
       
      tenho um arquivo com as funções, e apenas mando os parametros.
×

Informação importante

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