Pessoal,
Tenho uma tabela que tem os seguintes campos: INICIO (DATE), FIM (DATE), ID (NUMBER).
Supondo que eu tenha o seguinte registro:
INICIO: 01/02/1990
FIM: 01/02/1995
ID: 2
Como eu poderia fazer um select count que me retornasse os anos de 1990 a 1995? Há alguma maneira?
Obrigado
Intervalo de Datas
-
- Rank: Estagiário Sênior
- Mensagens: 8
- Registrado em: Seg, 24 Abr 2006 9:33 am
- Localização: São Carlos - SP
Marco Antonio Rocha
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Faça assim:
É claro, esse sql só vai funcionar se o INICIO for realmente menor que o FIM.
SELECT COUNT(ID)
FROM TABELA
WHERE INICIO >= TO_DATE('1990', 'YYYY')
AND FIM <= TO_DATE('1995', 'YYYY')
-
- Rank: Estagiário Sênior
- Mensagens: 8
- Registrado em: Seg, 24 Abr 2006 9:33 am
- Localização: São Carlos - SP
Marco Antonio Rocha
Obrigado pela resposta, mas acho que não me expressei muito bem.
Eu gostaria de um count por ano. No meu exemplo, eu preciso que sejam retornadas 6 linhas:
Não encontrei ainda nenhuma maneira de fazer isso. Será possível?
Eu gostaria de um count por ano. No meu exemplo, eu preciso que sejam retornadas 6 linhas:
ANO: 1990 - COUNT: 1
ANO: 1991 - COUNT: 1
ANO: 1992 - COUNT: 1
ANO: 1993 - COUNT: 1
ANO: 1994 - COUNT: 1
ANO: 1995 - COUNT: 1
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Vou apresentar a você a clausula GROUP BY dos SQL.
Veja o exemplo abaixo com o SCOTT
Veja o exemplo abaixo com o SCOTT
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE
---------- ---------- --------- ---------- ---------
7369 SMITH CLERK 7902 17-DEC-80
7499 ALLEN SALESMAN 7698 20-FEB-81
7521 WARD SALESMAN 7698 22-FEB-81
7566 JONES MANAGER 7839 02-APR-81
7654 MARTIN SALESMAN 7698 28-SEP-81
7698 BLAKE MANAGER 7839 01-MAY-81
7782 CLARK MANAGER 7839 09-JUN-81
7788 SCOTT ANALYST 7566 19-APR-87
7839 KING PRESIDENT 17-NOV-81
7844 TURNER SALESMAN 7698 08-SEP-81
7876 ADAMS CLERK 7788 23-MAY-87
7900 JAMES CLERK 7698 03-DEC-81
7902 FORD ANALYST 7566 03-DEC-81
7934 MILLER CLERK 7782 23-JAN-82
14 rows selected.
SQL> SELECT TO_CHAR(HIREDATE, 'YYYY'), COUNT(EMPNO) QTD
2 FROM EMP
3 GROUP BY TO_CHAR(HIREDATE, 'YYYY')
4 /
TO_C QTD
---- ------------
1980 1
1981 10
1982 1
1987 2
SQL>
-
- Rank: Estagiário Sênior
- Mensagens: 8
- Registrado em: Seg, 24 Abr 2006 9:33 am
- Localização: São Carlos - SP
Marco Antonio Rocha
É assim mesmo que estou fazendo. Só que ainda assim não resolve completamente o meu problema.
Usando o seu exemplo (acha que fica mais fácil de explicar). Se eu quiser saber quantos funcionários foram contratados por ano no período de 1980 a 1990, como eu deveria fazer pra obter um resultado parecido com esse:
Usando o seu exemplo (acha que fica mais fácil de explicar). Se eu quiser saber quantos funcionários foram contratados por ano no período de 1980 a 1990, como eu deveria fazer pra obter um resultado parecido com esse:
TO_C QTD
---- ------------
1980 1
1981 10
1982 1
1983 0
1984 0
1985 0
1986 0
1987 2
1988 0
1989 0
1990 0
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes