Usuário com melhor resposta
Comando produçãod e funcionarios

Pergunta
-
Amigos boa tarde,
Preciso de ajuda no comando abaixo:
O que eu faço nesse comando é pegar a quantidade de titulos de uma view e fazer menos a quantidade de outra view para saber a produção de cada funcionario
Na view vw_cartorio_titulos_recebidos_matricula
Tenho os campos:
Nota Funcionario Andamento
239498 Marcia Matricula_recebido por 2012-07-18 16:58:03.503
239526 Pedro Matricula_recebido por 2012-07-18 16:58:03.503
239533 Junior Matricula_recebido por 2012-07-18 16:58:03.503
239553 Josaine Matricula_recebido por 2012-07-18 16:58:03.503
Na view Vw_cartorio_producao_matricula
Tenho exatamente os mesmos campos mas muda o campo andamento
Nota Funcionario Andamento
239602 Felipe Conferencia de registro 2012-07-18 14:20:42.000
239662 Marcia Conferencia de registro 2012-07-18 14:20:59.000
239676 Junior Conferencia de registro 2012-07-18 14:21:14.000
239722 Debora Conferencia de registro 2012-07-18 14:21:24.000
O que eu preciso é saber quantos titulos foram recebidos e isso esta na vw_ vw_cartorio_titulos_recebidos_matricula
Menos a quantidade de titulos produzidos que esta na
Vw_cartorio_producao_matricula
Mas não to conseguindo fazer isso por funcionario apenas a quantidade total
Select T1.usuario, T1.titulos, t2.producao, T1.titulos - T2.producao as diferenca
from
(select (funcionario)as usuario, COUNT (recepcao) as titulos
from vw_cartorio_titulos_recebidos_matricula) as T1 inner join
( select COUNT (recepcao) as producao
from Vw_cartorio_producao_matricula) as T2 ON 1 = 1
Se alguem puder ajudar agradeço
Respostas
-
J. Carlos,
Pelo que entendi da descrição do seu problema, você deve fazer o agrupamento pelos campos Nota e Funcionario nas duas views, e depois fazer o relacionamento entre elas por esses campos.
No meu entendimento ficaria mais ou menos assim:
SELECT T1.usuario, T1.titulos, t2.producao, T1.titulos - T2.producao as diferenca FROM (SELECT Nota funcionario AS usuario, COUNT(recepcao) AS titulos FROM vw_cartorio_titulos_recebidos_matricula GROUP BY Nota, Funcionario) T1 INNER JOIN (SELECT Nota, funcionario AS usuario, COUNT(recepcao) AS producao FROM Vw_cartorio_producao_matricula GROUP BY Nota, Funcionario) T2 ON T2.nota = T1.Nota AND T2.Usuario = T1.Usuario
Fiz esse código aqui mesmo, não o compilei, mas pode servir como ponto de partida para a resolução do seu problema.
[]'s
Philipe Souza
E-mail: Philipe.s.souza@hotmail.com- Marcado como Resposta J.Carlos.Rib sexta-feira, 20 de julho de 2012 14:00
Todas as Respostas
-
Bom dia Carlos.
Não sei se entendi muito bem, mas vamos lá.... veja se isso resolve sua vida.
SELECT CTRM.Funcionario, (SELECT COUNT(*) FROM VW_CARTORIO_TITULOS_RECEBIDOS_MATRICULA WHERE Funcionaroio = CTRM.Funcionario) - (SELECT COUNT(*) FROM VW_CARTORIO_PRODUCAO_MATRICULA WHERE Funcionario = CTRM.Funcionario) FROM VW_ VW_CARTORIO_TITULOS_RECEBIDOS_MATRICULA CTRM
é algo similar a isso que você precisa?
-
Não na verdade eu preciso que saia assim:
Funcionario Titulos Produzidos Titulos Recebidos Diferença
Joao 25 30 5
Maria 35 30 5
Fernando 45 15 30
A view Vw_cartorio_producao_matricula me da a quantidade produzida de todos os funcionarios
a view vw_cartorio_titulos_recebidos_matricula me da a quantidade de titulos que cada funcionario recebeu
O que eu precisava fazer é saber a quantidade total que cada funcionario recebeu MENOS a quantidade total que cada funcionario produziu e saber a diferenca que resta
Essa quantidade pode ser pelo campo Nota que existem nas duas views
Ou seja a quantidade do campo NOTA por funcionario na view Vw_cartorio_producao_matricula MENOS a quantidade do campo NOTA da view vw_cartorio_titulos_recebidos_matricula - daria isso que eu preciso
Porem nao consigo fazer isso linha a linha por funcionario que seria desta forma:
Funcionario Titulos Produzidos Titulos Recebidos Diferença
Joao 25 30 5
Maria 35 30 5
Fernando 45 15 30
- Editado J.Carlos.Rib quinta-feira, 19 de julho de 2012 12:14 acres
-
J. Carlos,
Pelo que entendi da descrição do seu problema, você deve fazer o agrupamento pelos campos Nota e Funcionario nas duas views, e depois fazer o relacionamento entre elas por esses campos.
No meu entendimento ficaria mais ou menos assim:
SELECT T1.usuario, T1.titulos, t2.producao, T1.titulos - T2.producao as diferenca FROM (SELECT Nota funcionario AS usuario, COUNT(recepcao) AS titulos FROM vw_cartorio_titulos_recebidos_matricula GROUP BY Nota, Funcionario) T1 INNER JOIN (SELECT Nota, funcionario AS usuario, COUNT(recepcao) AS producao FROM Vw_cartorio_producao_matricula GROUP BY Nota, Funcionario) T2 ON T2.nota = T1.Nota AND T2.Usuario = T1.Usuario
Fiz esse código aqui mesmo, não o compilei, mas pode servir como ponto de partida para a resolução do seu problema.
[]'s
Philipe Souza
E-mail: Philipe.s.souza@hotmail.com- Marcado como Resposta J.Carlos.Rib sexta-feira, 20 de julho de 2012 14:00