Percorrer tabela
Boa tarde, como faço para percorrer uma tabela identificando se o funcionario esqueceu/pulou algum registro?
Estrutura da tabela
Ex. de dados gravados
nesse exemplo, deveria acusar que ele esqueceu/pulou o mês 10/2008.
Como faço para resolver isso?
Estrutura da tabela
idMetas int AutoInc MesAno VarChar(10) Atingiu Char(1) idFuncionario int
Ex. de dados gravados
idMetas MesAno Atingiu idFuncionario 1 2008-08-01 S 115 2 2008-09-01 S 115 3 2008-11-01 N 115
nesse exemplo, deveria acusar que ele esqueceu/pulou o mês 10/2008.
Como faço para resolver isso?
Facc
Curtidas 0
Respostas
Facc
18/09/2009
Achei esse SQL na NET (uma ajuda de outro forum)
Link: [url]http://felipe.c2zlabs.com/identificando-intervalos-entre-datas-no-mysql[/url]
Funciona perfeitamente qndo se tem apenas um funcionario na tabela, porém se existem mais funcionarios e alguns deles preencherem todas as datas, para os demais (que pularam/esqueceram) retorna como se tivesse tudo preenchido.
Alguem pode me ajudar a alterar essa sql?
Link: [url]http://felipe.c2zlabs.com/identificando-intervalos-entre-datas-no-mysql[/url]
Funciona perfeitamente qndo se tem apenas um funcionario na tabela, porém se existem mais funcionarios e alguns deles preencherem todas as datas, para os demais (que pularam/esqueceram) retorna como se tivesse tudo preenchido.
Alguem pode me ajudar a alterar essa sql?
GOSTEI 0
Facc
18/09/2009
Alguém?
GOSTEI 0
Facc
18/09/2009
Resolvido.
GOSTEI 0
Carlos Mazzi
18/09/2009
Tem como vc postar a solucao , amigo?
GOSTEI 0
Fábio Cruz
18/09/2009
Consegui essa SQL em outro forum
SELECT COUNT(DATE_ADD(X.INICIO, INTERVAL Y.N MONTH)) DATA FROM (SELECT MIN(mesano) inicio, MAX(mesano) fim FROM metas WHERE CPF = ' < CPF > ') X JOIN ( SELECT A.A+B.B+1 N FROM (SELECT 0 A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) A, (SELECT 0 B UNION ALL SELECT 10 UNION ALL SELECT 20 UNION ALL SELECT 30 UNION ALL SELECT 40 UNION ALL SELECT 50 UNION ALL SELECT 60 UNION ALL SELECT 70 UNION ALL SELECT 80 UNION ALL SELECT 90) B ORDER BY 1) Y ON DATE_ADD(X.inicio, INTERVAL Y.N MONTH) <= X.FIM LEFT JOIN metas M ON M.mesano = DATE_ADD(X.inicio, INTERVAL Y.N MONTH) AND M.CPF = ' < CPF > ' WHERE M.mesano IS NULL
GOSTEI 0
José
18/09/2009
Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0