Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PauloTI

[Resolvido] Oracle/DATE/Exercício.

Recommended Posts

Assim pessoal a questão é essa

 

15-) Mostrar todos os meses, e para cada um deles, o número de demitidos e contratados

 

OK mas a parte do numero de demitidos e contratados está meio que me tirando o sono rs, segue o que consegui fazer!

 

 

CREATE OR REPLACE PROCEDURE P_TODOS_MESES IS

BEGIN
 FOR I IN (SELECT 
             DISTINCT   TO_CHAR(DATA_ADMISSAO,'MM') LOL
                 FROM EMPRE
                 GROUP BY DATA_ADMISSAO) LOOP
     DBMS_OUTPUT.PUT_LINE(' O MES DE ADMISSAO É : '||I.LOL||' E A QUANTIDADE DE DEMITIDOS É :');
END LOOP;      

BEGIN
FOR R IN (SELECT 
            DISTINCT  TO_CHAR(DATA_RESCISAO,'MM') LOL1
                FROM EMPRE
                GROUP BY DATA_RESCISAO) LOOP

   DBMS_OUTPUT.PUT_LINE(' O MES DE RESCISAO É : '||R.LOL1||' E A QUANTIDADE DE DEMITIDOS É :');

END LOOP;
END;
END;

 

porém não consigo trazer a quantidade.. já tentei usar COUNT e etc.. mas acho que não é isso.. alguém pode dar um HELP? VALEU \o

 

 

a estrutura da tabela é essa

 

 

CÓDIGO	NUMBER(5)			
NOME	VARCHAR2(50)			
SOBRENOME	VARCHAR2(50)			
DATA_ADMISSAO	DATE		
DATA_RESCISAO	DATE			
SALÁRIO	NUMBER(9,2)			
PROFISSAO	VARCHAR2(40)			
DEPTO	NUMBER(3)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está quase lá, tente ...

 

Agrupar pelo mes (veja a function to_char).

Usar o count

 

Vá nessa linha uma sql para admitidos uma para demitidos, depois tente juntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está quase lá, tente ...

 

Agrupar pelo mes (veja a function to_char).

Usar o count

 

Vá nessa linha uma sql para admitidos uma para demitidos, depois tente juntar.

 

 

POXA MOTTA VALEU MESMO \Õ/ OLHA COMO FICOU...

 

CREATE OR REPLACE PROCEDURE P_TODOS_MESES IS

BEGIN
 FOR I IN (SELECT 
             DISTINCT   TO_CHAR(DATA_ADMISSAO,'MM') LOL,
             COUNT(*) LOL1
                 FROM EMPRE
                 GROUP BY TO_CHAR(DATA_ADMISSAO,'MM')) LOOP
     DBMS_OUTPUT.PUT_LINE(' O MES DE ADMISSAO É : '||I.LOL||' E A QUANTIDADE DE DEMITIDOS É :'||I.LOL1);
END LOOP;      

BEGIN
FOR R IN (SELECT 
            DISTINCT  TO_CHAR(DATA_RESCISAO,'MM') LOL1,
            COUNT(*) LOL2
                FROM EMPRE
                WHERE DATA_RESCISAO IS NOT NULL
                GROUP BY TO_CHAR(DATA_RESCISAO,'MM')) LOOP

   DBMS_OUTPUT.PUT_LINE(' O MES DE RESCISAO É : '||R.LOL1||' E A QUANTIDADE DE DEMITIDOS É :'||R.LOL2);

END LOOP;
END;
END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.