Meu select está vindo vazio e tem dados
22/04/2013
0
WITH
CTE_A AS
(SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))AS DT_LANCAMENTO,
COUNT(*) AS CUMPRIMENTO FROM TBL_CUMPRIMENTO
WHERE CONVERT(DATETIME,FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))BETWEEN '15/04/2013' AND '22/04/2013'
AND EXECUTADO = 'SIM'
GROUP BY CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))),
CTE_B AS
(SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))AS DT_LANCAMENTO,
COUNT(*) AS LIMINAR FROM TBL_CADASTRO
WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO))) BETWEEN '15/04/2013' AND '22/04/2013'
AND ID_CADASTRO IN (SELECT ID_CADASTRO FROM TBL_TAREFA WHERE NM_TAREFA = 'LIMINAR' )
GROUP BY CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))),
CTE_C AS
(SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))AS DT_LANCAMENTO,
COUNT(*) AS SENTENCA FROM TBL_CADASTRO
WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO))) BETWEEN '15/04/2013' AND '22/04/2013'
AND ID_CADASTRO IN (SELECT ID_CADASTRO FROM TBL_TAREFA WHERE NM_TAREFA = 'SENTENÇA' )
GROUP BY CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))),
CTE_D AS
(SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))AS DT_LANCAMENTO,
COUNT(*) AS ACORDO FROM TBL_CADASTRO
WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO))) BETWEEN '15/04/2013' AND '22/04/2013'
AND ID_CADASTRO IN (SELECT ID_CADASTRO FROM TBL_TAREFA WHERE NM_TAREFA = 'ACORDO' )
GROUP BY CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))),
CTE_E AS
(SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))AS DT_LANCAMENTO,
COUNT(*) AS ACORDAO FROM TBL_CADASTRO
WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO))) BETWEEN '15/04/2013' AND '22/04/2013'
AND ID_CADASTRO IN (SELECT ID_CADASTRO FROM TBL_TAREFA WHERE NM_TAREFA = 'ACÓRDÃO' )
GROUP BY CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO))))
SELECT CONVERT(VARCHAR, A.DT_LANCAMENTO, 103) AS DATA,(LIMINAR-CUMPRIMENTO)AS TT_LIMINAR,
(SENTENCA-CUMPRIMENTO)AS TT_SENTENCA,(ACORDO-CUMPRIMENTO)AS TT_ACORDO,(ACORDAO-CUMPRIMENTO)AS TT_ACORDAO
FROM CTE_A A
INNER JOIN CTE_B B ON CONVERT(VARCHAR(10), A.DT_LANCAMENTO,103) = CONVERT(VARCHAR(10), B.DT_LANCAMENTO,103)
INNER JOIN CTE_C C ON CONVERT(VARCHAR(10), A.DT_LANCAMENTO,103) = CONVERT(VARCHAR(10), C.DT_LANCAMENTO,103)
INNER JOIN CTE_D D ON CONVERT(VARCHAR(10), A.DT_LANCAMENTO,103) = CONVERT(VARCHAR(10), D.DT_LANCAMENTO,103)
INNER JOIN CTE_E E ON CONVERT(VARCHAR(10), A.DT_LANCAMENTO,103) = CONVERT(VARCHAR(10), E.DT_LANCAMENTO,103)
Pjava
Posts
22/04/2013
Alex Lekao
Experimente substituir o INNER JOIN por LEFT JOIN por exemplo e ve se funciona.
Abraco.
Alex - Lekao
22/04/2013
Pjava
22/04/2013
Pjava
Esse select me traz 5 linhas
SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))AS DT_LANCAMENTO,
COUNT(*) AS LIMINAR FROM TBL_CADASTRO
WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO))) BETWEEN '15/04/2013' AND '22/04/2013'
AND ID_CADASTRO IN (SELECT ID_CADASTRO FROM TBL_TAREFA WHERE NM_TAREFA = 'LIMINAR' )
GROUP BY CONVERT(DATETIME, FLOOR(CONVERT(FLOAT(24),DT_LANCAMENTO)))
22/04/2013
Pjava
22/04/2013
Joel Rodrigues
Estou marcando este tópico como Concluído.
22/04/2013
Alex Lekao
Basicamente qdo vc usa INNER ira apresentar a Intercessão entre as duas tabelas, no caso terá que apresentar um registro que conste nas duas tabelas.
Caso vc queira usar como base uma tabela e mostrar o resultado desta tabela independente de ter ou não o resultado vc deve usar o LEFT ou o RIGHT.
Mas acredito que esteja correto esse pensamento que disse.
Honestamente eu me perco um pouco com os seus selects, como não conheço a estrutura do seu banco para mim fica meio complicado, não entendo muito bem o pq de Usar tanto as CTEs. rsrsr
Mas eh isso ae, se conferiu e deu certo, ta lindo, manda pau... rsrsr
Abraco.
Alex - Lekao
22/04/2013
Pjava
22/04/2013
Alex Lekao
eu tbm tenho meus esqueletos... rsrsr
vou so fazendo alterações isso eh normal.
se não me engano a CTE eh uma tabela temporária, mais usada para fazer algum tipo de cruzamento, não sou la estas coisas com BD tbm não... rsrsr
Eu não costumo usar as CTEs, acredito que são mais lentas, já li e vi alguma coisa a respeito no curso que fiz, mas honestamente ate hoje não consegui usar.
Qdo preciso fazer algo um pouco diferente eu uso um jeito diferente de fazer tabela temporária que acredito que fique um pouco mais rápida que uma CTE.
Mas cara ta funcionando... ta lindo... so recomendo tentar verificar com relação a desempenho e se não esta faltando nenhum índice, com isso já da uma melhorada no desempenho e tal.
tem umas coisas de boas praticas que eh bom dar uma observada, mas caso contrario... toca o pau... rsrsr
Abraco.
Alex - Lekao
Clique aqui para fazer login e interagir na Comunidade :)