[Portugal] Dúvida com PostgreSQL
Júlio José Vicente de Almeida
jalmeida dgv.min-agricultura.pt
Terça-Feira, 18 de Setembro de 2012 - 11:18:18 PDT
Pode importar as tabelas para access através do ODBC trabalhar a informação como quiser no access e depois criar tabela(s) com os resultados apurados e caso queira gravar para txt
J. Vicente de almeida
[Descrição: Descrição: Descrição: cid:image003.jpg 01CC47C8.748BC4D0]
Direcção Geral de Veterinária
Direcção de Serviços de Produção Animal
Avenida António Serpa, 26 - 1º andar
1050-027 LISBOA
Tel: + 351 217 808 200 Fax: + 351 217 808 250
De: portugal-bounces lists.osgeo.org [mailto:portugal-bounces lists.osgeo.org] Em nome de António M. Rodrigues
Enviada: terça-feira, 18 de Setembro de 2012 17:38
Para: OSGeo PT - The OSGeo Portugal Local Chapter
Assunto: Re: [Portugal] Dúvida com PostgreSQL
Resolvido.
No dia 18 de Setembro de 2012 17:19, António M. Rodrigues <amcrgrodrigues gmail.com<mailto:amcrgrodrigues gmail.com>> escreveu:
Boa tarde,
Estou com um problema com o Postgresql que penso que alguém versado em sql poderá resolver com facilidade.
Numa base de dados dos Censos 2001, tenho várias tabelas, duas das quais chamam-se <c2001_individuos> e c2001_subsecs (relacionadas pelo código da sub-secção estatística)
Pretendo obter uma tabela com cada freguesia (censos2001.c2001_subsecs.cc_dsg_eu02) do concelho de Tomar (censos2001.c2001_subsecs.cc_dsg_eu02 = 'Tomar'), com a soma da população residente em cada ( sum(censos2001.c2001_individuos.ttr) ).
Tentei várias coisas, mas sem sucesso.
---------------------
Tentativa 1:
select
censos2001.c2001_subsecs.ff_dsg_eu02,
sum(censos2001.c2001_individuos.ttr)
from
censos2001.c2001_subsecs,
censos2001.c2001_individuos
where
censos2001.c2001_subsecs.subsec = censos2001.c2001_individuos.subsec
group by censos2001.c2001_subsecs.ff_dsg_eu02
having censos2001.c2001_subsecs.cc_dsg_eu02 = 'Tomar';
ERRO:
ERROR: column "c2001_subsecs.cc_dsg_eu02" must appear in the GROUP BY clause or be used in an aggregate function
(compreendo mas não comsigo resolver)
---------------------
Tentativa 2:
select
censos2001.c2001_subsecs.ff_dsg_eu02,
sum(censos2001.c2001_individuos.ttr)
from
censos2001.c2001_subsecs,
censos2001.c2001_individuos
where
censos2001.c2001_subsecs.cc_dsg_eu02 = (select censos2001.c2001_subsecs.cc_dsg_eu02 from censos2001.c2001_subsecs where censos2001.c2001_subsecs.cc_dsg_eu02 = 'Tomar')
AND
censos2001.c2001_subsecs.subsec = censos2001.c2001_individuos.subsec
group by censos2001.c2001_subsecs.ff_dsg_eu02;
ERRO:
ERROR: more than one row returned by a subquery used as an expression
--------------------------
Se eu pretendesse obter simplesmente o total da população de Tomar, sei que seria fácil:
select
censos2001.c2001_subsecs.cc_dsg_eu02,
sum(censos2001.c2001_individuos.ttr)
from
censos2001.c2001_subsecs,
censos2001.c2001_individuos
where
censos2001.c2001_subsecs.subsec = censos2001.c2001_individuos.subsec
group by censos2001.c2001_subsecs.cc_dsg_eu02
having censos2001.c2001_subsecs.cc_dsg_eu02 = 'Tomar';
Mas não é bem isto...
Sei que me está a falhar algo simples, mas o quê?
Isto da pouca prática com SQL tem destas coisas.
Obrigado.
Abraços,
António
-------------- próxima parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.osgeo.org/pipermail/portugal/attachments/20120918/4a5ebd3d/attachment-0001.html>
-------------- próxima parte ----------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 1924 bytes
Desc: image001.jpg
URL: <http://lists.osgeo.org/pipermail/portugal/attachments/20120918/4a5ebd3d/attachment-0001.jpg>
More information about the Portugal
mailing list