[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