none
Criar View filtrando por qualquer campo mas retornando colunas especificas RRS feed

  • Pergunta

  • Bom dia.

    Preciso de ajuda para resolver uma questão de consulta na view. Preciso de ajuda para criar esta view.

    **Segue a tabela:**
            CREATE TABLE [dbo].[Controle](    	[ID] [int] IDENTITY(1,1) NOT NULL,    	[DataHora] [datetime] NOT NULL,    	[Local] [varchar](30) NOT NULL,    	[PessoaID] [int] NOT NULL,    	[PessoaNome] [varchar](50) NOT NULL,    	[PessoaDocNumero] [varchar](15) NOT NULL,    	[PessoaGrupo] [varchar](30) NULL,    	[Outros1] [varchar](30) NULL,    	[Outros2] [varchar](30) NULL,     CONSTRAINT [PK_Controle] PRIMARY KEY CLUSTERED     (    	[ID] ASC    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]    ) ON [PRIMARY]    GO

    **Segue o insert:**
      
        INSERT INTO Controle (DataHora,Local,PessoaID,PessoaNome,PessoaDocNumero,PessoaGrupo,Outros1,Outros2)VALUES(GETDATE(),'TERREO',1,'MARIA','123456789','VISITANTE','XPTO1', 'XPTO2')INSERT INTO Controle (DataHora,Local,PessoaID,PessoaNome,PessoaDocNumero,PessoaGrupo,Outros1,Outros2)VALUES(GETDATE(),'TERREO',2,'MARIA LUIZA','323232','VISITANTE','XPTO1', 'XPTO2')INSERT INTO Controle (DataHora,Local,PessoaID,PessoaNome,PessoaDocNumero,PessoaGrupo,Outros1,Outros2)VALUES(GETDATE(),'TERREO',3,'MARIA CLARA','766767676','VISITANTE','XPTO1', 'XPTO2')

    Objetivo:

    Preciso saber a quantidade de registros por PessoaGrupo no mês e ano a ser definido em filtro e ainda ser filtrado por PessoaNome . Ex: PessoaNome LIKE '%MARIA%'.

    O detalhe importante é que o campo PessoaNome  não pode estar contido no resultado. O resultado só pode ter 3 colunas: Campo, Dia e valor

    A consulta abaixo apontando pata a tabela Controle funciona:
     
      SELECT PessoaGrupo, 'Dia ' + '' + Convert(VARCHAR,day(DataHora)) as Dia, COUNT(*) as Valor		FROM Controle 		WHERE ID > 0		and PessoaGrupo = 'VISITANTE'         and PessoaNome LIKE '%MARIA%' 		and month(DataHora) = 05		and year(DataHora) = 2021		GROUP BY PessoaGrupo, day(DataHora)

    retorno:

        Campo              Dia         valor
        VISITANTE Dia   12 3


    Mas como vou utilizar VIEW é onde estou com problemas. Como faço para retornar apenas as 3 colunas sem retornar o campo PessoaNome que será utilizado no filtro? O campo PessoaNome é apenas um filtro  que citei, mas poderei filtrar pelos campos PessoaNome , PessoDocumento, Outros1 e Outros2  da tabela Controle.


    Alguém pode me ajudar com a criação desta view?

    Grata 

    Teles







    • Editado Teles quarta-feira, 12 de maio de 2021 17:48
    quarta-feira, 12 de maio de 2021 14:53

Todas as Respostas