Eu fui em Base de dados > Db Manager > Db Manager.
Na tela que abriu, no painel no lado esquerdo, fui em Camada virtual > Qgis Layers e cliquei em uma camada la dentro.
Na parte de cima, o segundo botão vai abrir uma nova aba para inserir o SQL, basta inserir ele e modificar conforme a sua necessidade, e pressionar F5, se não retornar nenhum erro, em baixo da janela tem uma opção "Carregar nova camada"
Clicando nela vai aparecer as opções de carregamento, vc pode dar um nome para a camada a ser gerada, e clicar em "Carregar Agora".
Para salvar as informações, basta clicar na camada gerada e ir em SALVAR COMO, configurar o arquivo de saída e o arquivo estará pronto para ser usado em qqr outro projeto.
o SQL é o seguinte:
select
a."campo_camada1" as "nome_do_campo_na_nova-Camada", --Aqui vamos pegar um campo alvo da [camada_1] a ser inserido na camada final e dar a ele um novo nome nessa camada
b.nome as municipio,--Aqui vamos pegar um campo alvo da [camada_2] a ser inserido na camada final e dar a ele um novo nome nessa camada
st_intersection(b.geometry,a.geometry) as geom, --Vetor da intercessao entre as camadas
(st_area(st_intersection(b.geometry,a.geometry))/10000) as area, -- area em hec da intercessao
((st_area(st_intersection(b.geometry,a.geometry))*100)/ st_area(b.geometry)) as porcent -- % da area relativa ao municipio
from [camada_1] as a -- Aqui apelidamos a [camada_1] de a para ficar mais facil trabalhar o codigo
left join [camada_2] as b --Aqui apelidamos a [camada_2] de b para ficar mais facil trabalhar o codigo
on st_intersects(a.geometry,b.geometry)
CONSELHO:
Não use letras maiúsculas no nomes das camadas e dos campos, e não utilize caracteres especiais também, isso pode atrapalhar o procedimento.
caractere especial que não tem problema de ser utilizado é o _.
Vc pode apenas renomear a camada na visualização do qgis caso haja caracteres especiais ou letras maiúsculas.
Caso o nome do campo fuja das regras a cima, basta usar o campo refator para mudar o nome do campo, gerando um aquivo novo.
Use sempre arquivos no mesmo SRC, caso não esteja clique com o botão direito sobre a camada > Salvar como e configure para que arquivo de saida gerada esteja no mesmo SRC do outro arquivo.
LEMBRETE:
Substitua [camada_1] e [camada_2] pelo nome da camada que vc quer usar,
Sim, deve-se retirar os colchetes para não dar erro.
Em a."campo_camada1" e b."campo_camada2" substitua os termos "campo_camada1" e "campo_camada2" pelos campos das camadas que vc quer que apareçam na camada resultante.
Sim, deve-se retirar as aspas duplas para não dar erro.
Be happy!
Thumbs up!
#ThinkFree!