Autor
Mensagem
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
Código:
|
Ex. de dados gravados
Código:
|
nesse exemplo, deveria acusar que ele esqueceu/pulou o mês 10/2008.
Como faço para resolver isso?
Achei esse SQL na NET (uma ajuda de outro forum)
Link: http://felipe.c2zlabs.com/identificando-intervalos-entre-datas-no-mysql
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: http://felipe.c2zlabs.com/identificando-intervalos-entre-datas-no-mysql
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?
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
#Código
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










