none
Count com Condição RRS feed

  • Pergunta

  • Bom Dia.

    As tabelas utilizadas são:

    select a.id_entidade, a.razao_social from vw_rs_funcionario a

    where id_funcao = 1

    and id_departamento = 5

    Resultado:

    id_entidade

    razao_social

    Id_funcao

    Id_departamento

    24

    Temer

    1

    5

    13

    Lula

    1

    5

    22

    Dilma

    1

    5

    select id_entidade, razao_social_cliente, id_funcionario, razao_social_funcionario

    from vw_rs_entidade_func

    Resultado:

    id_entidade

    razao_social_cliente

    id_funcionario

    razao_social_funcionario

    1

    Drogaria B

    51

    Boa Idéia

    1

    Drogaria A

    22

    Dilma

    5

    Drogaria B

    22

    Dilma

    4

    Drogaria  C

    13

    Galo

    1

    Drogaria A

    55

    Joao

    5

    Drogaria B

    45

    José

    9

    Drogaria  C

    42

    Leonardo

    5

    Drogaria A

    13

    Lula

    4

    Drogaria  C

    13

    Lula

    8

    Drogaria B

    43

    Maria

    9

    Drogaria B

    89

    Osvaldo

    8

    Drogaria  C

    30

    Pedro

    7

    Drogaria  C

    97

    Silvana

    9

    Drogaria A

    24

    Temer

    Obs: Esta é a tabela de entidade_funcionario. A mesma mostra as drogarias que estão vinculadas aos vendedores.

    select id_entidade, id_situacao, situacao

     from vw_rs_entidade

    id_entidade

    id_situacao

    situacao

    1

    0

    Ativo

    4

    2

    Inativo

    5

    0

    Ativo

    7

    0

    Ativo

    8

    0

    Ativo

    9

    1

    Bloqueado

    10

    0

    Ativo

    11

    0

    Ativo

    Obs: Essa é a tabela entidade aonde consigo verificar a situação do cliente.

    Segue abaixo como deve ficar meu relatório:

    Id_vendedor

    Descrição

    Ativo

    Inativo

    Bloqueado

    24

    Temer

    151

    157

    22

    13

    Lula

    58

    2

    55

    22

    Dilma

    45

    75

    21

    Como podemos ver no resultado acima, o select deve ter o count. Deve contar quantas drogarias cada vendedor esta vinculado e separar nas colunas os clientes que são ativos , inativos e bloqueado. Como ficaria meu select ?

    quinta-feira, 31 de agosto de 2017 15:12

Respostas

  • Bom dia,

    Experimente dessa forma:

    select 
        f.id_entidade, 
        f.razao_social,
        count(case when e.situacao = 'Ativo' then 1 end) as Ativo,
        count(case when e.situacao = 'Inativo' then 1 end) as Inativo,
        count(case when e.situacao = 'Bloqueado' then 1 end) as Bloqueado
    from vw_rs_funcionario as f
    inner join vw_rs_entidade_func as ef
        on ef.id_funcionario = f.id_entidade
    inner join vw_rs_entidade as e
        on e.id_entidade = ef.id_entidade
    where 
        f.id_funcao = 1 and 
        f.id_departamento = 5

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 31 de agosto de 2017 15:26