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:[email protected]]


            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: [email protected] [mailto:[email protected]] 
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 
<[email protected]<mailto:[email protected]>> 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

<<inline: image001.jpg>>

_______________________________________________
Portugal mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/portugal

Responder a