Select com View e Table no Firebird

20/04/2004

0

Olá pessoal.

Estou com um probleminhão:

(Obs: Estou utilizando o Interbase)

Tenho duas tabelas: documentos[documento(varchar(50), depto(integer)] e Processos[processo(varchar(15), depto(integer)]

Criei uma view com a seguinte instrução:

  create view TODOS (docpro, depto) as
        select cast(processo as varchar(50)), depto from processos
        union all
        select documento, depto from documentos


Até aqui tudo bem.

Agora necessito de uma estatística dessa view: Quantos DOCPRO existem por DEPTO

Quando faço somente com a View funciona corretamente:

Select count(*), depto from TODOS
     group by depto


Mas necessito utilizar a descrição deste departamento que está na table TDEPTO. Estou fazendo a seguinte instrução:

Select count(*), D.DESCRICAO from TODOS T, TDEPTO D
     where T.DEPTO=D.ID
     group by D.DESCRICAO


Não está dando certo. Executando esta instrução sql no IbConsole ele aparece a mensagem de encerramento (se deseja efetuar o commit ou rollback) e por incrível que pareça não adianta selecionar os botões pq a mensagem volta e necessito utilizar o gerenciador de tarefas do windows para encerrar o IBConsole.

Alguém poderia me dizer como posso fazer isso?

Obrigado

Danilo R. de Almeida
AG Soluções
Danilora

Danilora

Responder

Posts

28/03/2019

Réulison Silva

Talvez esse artigo possa te ajudar parceiros:
Como usar View no Firebird
Incluir campos de uma tabela em Firebird
Responder

28/03/2019

Hélio Devmedia

Olá Tudo bem?

Você não conseguirá fazer desta forma no firebird. Você precisará fazer inner join, ou left Join com a tabela TDepto: observe

Select 
   count(*), D.DESCRICAO 
from 
   TODOS T
   inner join  TDEPTO D on
     T.DEPTO=D.ID
group by D.DESCRICAO


Desta forma você conseguirá fazer.

Espero ter ajudado. Um forte abraço e fique com Deus!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar