Jump to content
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.

 

Share this post


Link to post
Share on other 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

 

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

o que sinaliza o supervisor ?

 

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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

mas como sei que Tania é supervisora de Mirian ?

ou seja o que amarra 255 a 9898 ?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other 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;

Share this post


Link to post
Share on other 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

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 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
       
    • By 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>  
    • By 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.
    • By 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.
    • By biakelly
      Olá Tudo bem?
       
      Poderiam me ajudar com a seguinte condição:
      <?php if ($row['facebook'] != "") { echo '<a class="btn btn-dark btn-social mx-2" href="<?php echo $row['facebook']; ?>"><i class="fab fa-facebook-f"></i></a>'; } else { echo ''; } ?>  
      Estou recebendo o seguinte erro:
      Parse error: syntax error, unexpected 'facebook' (T_STRING), expecting ';' or ',' in C:\xampp\htdocs\biazinha\inicial.php on line 371
       
       
      A linha 371 é essa:
      echo '<a class="btn btn-dark btn-social mx-2" href="<?php echo $row['facebook']; ?>"><i class="fab fa-facebook-f"></i></a>';  
       
       
×

Important Information

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