Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
estou fazendo um sql que junta 3 tabelas porem estou com problema no group by no campo data_registro que é do tipo date
o sql nao retorna o mesmo valor do somatorio das tabelas separadamente...
se eu retirar o campo data_registro os somatorios ficam certos
o estranho é que ja tentei separar a data em colunas dia mes ano para ver se funcionava com a funcao do oracle extract
extract(day from data_registro) as dia
extract(month from data_registro) as mes
extract(year from data_registro) as ano
colocando dia mes ano separados tambem nao funcionou ai eu retirei dia e mes deixando apenas o ano e os somatorios ficavam certos
alguem ja viu algo parecido?
group by divergir no sum com colunas tipo date
eu achei esse topico no forum da oracle porem nao colcaram nenhuma explicacao ou solucao
http://glufke.net/oracle/viewtopic.php?t=3713
para juntar ficaria assim
select
coluna1,
coluna2,
coluna3,
data_registro,
sum(valor1) as valor1,
sum(valor2) as valor2,
sum(valor3) as valor3
from(
--a tabela 1 so possui o valor 1
SELECT
coluna1,
coluna2,
coluna3,
data_registro,
valor1,
0 as valor2,
0 as valor3
from
tabela1
UNION ALL
--a tabela2 so possui o valor2
SELECT
coluna1,
coluna2,
coluna3,
data_registro,
0 as valor1,
valor2,
0 as valor3
from
tabela2
UNION ALL
--a tabela 3 so possui o valor 3
SELECT
coluna1,
coluna2,
coluna3,
data_registro,
0 as valor1,
0 as valor2,
valor3
from
tabela3
)
group by
coluna1,
coluna2,
coluna3,
data_registroCarregando comentários...