Trazer data (mes/ano) no interbase
dai galera blz?!?! seguinte.. to com um projeto q tem uma consulta q pega a data e o ano e me conta quantas pessoas tem naquele periodo.. so q tem um problema.. como to programando pra 3 bancos diferentes (Oracle, Sql Server e interbase) tenho q te um select pra cada um.. so q o problema todo ta no interbase ñ usar um COUNT se alguem puder ajudar ai! valeu!!
segue os 3 codigos q eu to usando..
Oracle:
Sql Server:
e o que ta dando erro, interbase:
o problema é que tem q ter esse count, pq depois ainda vem um outro select q vai trabalhar em cima desses resultados... afirmo novamente, em Oracle e SQL Server, ta funcionando perfeito... se alguem puder me ajudar! agraço...
tipo pra ser mais claro: tenho no mes(07/2005) 4 contatos e no mes(08/2005) 1 contato esse select ali ta me trazendo assim
07/2005 - 5
08/2005 - 5
teria q tar:
07/2005 - 4
08/2005 - 1
se alguem puder me ajudar agradeço MT!!! valeu galera!!!
[color=green:4755f7fca5]Título editado por gandalf.nho. Favor não usar termos apelativos[/color:4755f7fca5]
segue os 3 codigos q eu to usando..
Oracle:
select count(TO_CHAR(contato.dtcontato, ´YYYY/MM´)) Quantidade, TO_CHAR(contato.dtcontato, ´YYYY/MM´) Data from contato group by TO_CHAR(contato.dtcontato, ´YYYY/MM´)
Sql Server:
select Count(cast(DATEPART(YEAR, DTCONTATO) as varchar)+ ´/´+ cast(DATEPART(MONTH, DTCONTATO) as varchar)) AS Quantidade, cast(DATEPART(YEAR, DTCONTATO)as varchar)+ ´/´+ cast(DATEPART(MONTH, DTCONTATO) as varchar) as Data from CONTATO group by cast(DATEPART(YEAR, DTCONTATO) as varchar)+ ´/´+ cast(DATEPART(MONTH, DTCONTATO) as varchar) order by 2
e o que ta dando erro, interbase:
select distinct EXTRACT(year from dtcontato) || ´\´ || EXTRACT(month from dtcontato) DATA, (select COUNT(dtcontato) from contato) Quantidade from contato group by dtcontato
o problema é que tem q ter esse count, pq depois ainda vem um outro select q vai trabalhar em cima desses resultados... afirmo novamente, em Oracle e SQL Server, ta funcionando perfeito... se alguem puder me ajudar! agraço...
tipo pra ser mais claro: tenho no mes(07/2005) 4 contatos e no mes(08/2005) 1 contato esse select ali ta me trazendo assim
07/2005 - 5
08/2005 - 5
teria q tar:
07/2005 - 4
08/2005 - 1
se alguem puder me ajudar agradeço MT!!! valeu galera!!!
[color=green:4755f7fca5]Título editado por gandalf.nho. Favor não usar termos apelativos[/color:4755f7fca5]
Bastard2003
Curtidas 0
Respostas
Tommahawk
06/07/2005
experimente dar o count em qualquer campo da tabela, com a data no formato passado e faça o group by na data.
Assim:
O mesmo raciocínio se aplica aos outros bancos...
Assim:
select count(QualquerCampo) Quantidade, EXTRACT(year from dtcontato) || ´\´ || EXTRACT(month from dtcontato) DATA, from contato group by EXTRACT(year from dtcontato) || ´\´ || EXTRACT(month from dtcontato)
O mesmo raciocínio se aplica aos outros bancos...
GOSTEI 0
Emerson Nascimento
06/07/2005
é isso mesmo. não precisa esse trabalho todo no count.
Oracle:
Sql Server:
Interbase:
Firebird/Interbase:
Oracle:
select TO_CHAR(dtcontato, ´MM/YYYY´) Data, count(dtcontato) Quantidade from contato group by TO_CHAR(dtcontato, ´MM/YYYY´)
Sql Server:
select substring(convert(char(10),dtcontato,103),4,7) Data, count(dtcontato) Quantidade from contato group by substring(convert(char(10),dtcontato,103),4,7)
Interbase:
select distinct ( extract(month from c1.dtcontato) || ´/´ || extract(year from c1.dtcontato) ) Data, (select count(c2.dtcontato) from contato c2 where extract(month from c2.dtcontato) || extract(year from c2.dtcontato)= extract(month from c1.dtcontato) || extract(year from c1.dtcontato) ) Quantidade from contato c1
Firebird/Interbase:
select extract(month from dtcontato) || ´/´ || extract(year from dtcontato) Data, count(dtcontato) Quantidade from contato group by 1
GOSTEI 0