RM Bis.pdf

58
Consultas SQL Consultas SQL à à base CORPORE RM e base CORPORE RM e RM Bis RM Bis Versão: 6.0.2 Todos os direitos autorais reservados pela RM SISTEMAS. Proibida a reprodução total ou parcial, bem como a armazenagem em sistema de recuperação e a transmissão, de qualquer modo ou por qualquer outro meio, seja este eletrônico, mecânico, de fotocópia, de gravação, ou outros, sem prévia autorização por escrito da proprietária. O desrespeito a essa proibição configura uma apropriação indevida dos direitos intelectuais e patrimoniais da RM SISTEMAS. Aos infratores se aplicam as sanções previstas nos artigos 122 e 130 da Lei nº 5.988 de 14 de dezembro de 1973. Treinamentos www.rm.com.br Professor

description

Apostila do RM Bis da Totvs.

Transcript of RM Bis.pdf

Page 1: RM Bis.pdf

Consultas SQL Consultas SQL ààbase CORPORE RM ebase CORPORE RM e

RM BisRM Bis

Versão: 6.0.2

Todos os direitos autorais reservados pela RM SISTEMAS.Proibida a reprodução total ou parcial, bem como a armazenagem em

sistema de recuperação e a transmissão, de qualquer modo ou porqualquer outro meio, seja este eletrônico, mecânico, de fotocópia, de

gravação, ou outros, sem prévia autorização por escrito da proprietária.O desrespeito a essa proibição configura uma apropriação indevida dos

direitos intelectuais e patrimoniais da RM SISTEMAS. Aos infratores se aplicam as sanções previstas nos artigos 122 e 130

da Lei nº 5.988 de 14 de dezembro de 1973.

Treinamentoswww.rm.com.br

Professor

Page 2: RM Bis.pdf

A RM Sistemas foi fundada em 1986 e é atualmente uma dasmaiores empresas de sistemas de gestão empresarial do

mercado brasileiro. São mais de 19 mil clientes de pequeno,médio e grande porte que utilizam o CORPORE RM. Com matriz

em Belo Horizonte e filiais em São Paulo, Rio de Janeiro,Curitiba(PR), Uberlândia(MG) e Porto Alegre(RS), a RM Sistemasestá presente em todo país por meio de mais de 40 canais de

distribuição, além de uma unidade em Portugal. De acordo com arevista IstoÉ Dinheiro, a RM Sistemas é a "Melhor Empresa doSetor de Tecnologia de Software e Serviços" no ranking "As 500

Melhores da Dinheiro 2005". A RM Sistemas também foi eleita,pela segunda vez (2004 e 2005), a "Melhor Empresa de Software

do Brasil", no Premio INFO 200 da Editora Abril.

O CORPORE RM é um sistema de gestão empresarial que utilizaavançada tecnologia e permite total integração dos processosem diferentes setores da empresa e da cadeia produtiva, do

fornecedor ao cliente final. Abrange processos de controladoria,finanças, automação comercial, produção, manutenção,

assistência técnica, CRM, e-commerce, e business intelligence.Além disso, possui soluções específicas para os segmentos de

educação, saúde, construção civil e indústrias.

Através do Site RM Sistemas você tem acesso a serviçosexclusivos como: informações financeiras e cadastrais,

emissão de 2ª via de nota fiscal e boleto bancário, consultae ocorrências, envio de base, senhas e download de novasversões, log de acessos e fórum de discussão. Tudo isso

com total segurança.

SERVIÇOS ON LINESERVIÇOS ON LINE

CadastreCadastre--se agora mesmo no menu cliente on-linese agora mesmo no menu cliente on-linewwwwww.rm.com.br.rm.com.br

Page 3: RM Bis.pdf

Visão Geral do CORPORE RM....................................................................................................04Apresentação ............................................................................................................................05

Objetivos do Curso ..........................................................................................................05Conteúdo Programático ..................................................................................................05Expectativas do Curso ....................................................................................................05

MÓDULMÓDULO 1O 1..............................................................................................................................06Introdução Teórica ..........................................................................................................06Bancos de Dados e SGBD´S ............................................................................................06Tabelas ............................................................................................................................06

Chaves Primárias....................................................................................................07Chaves Estrangeiras ..............................................................................................07

Banco de Dados Cliente/Servidor ....................................................................................07Distribuição dos Softwares na Rede (CORPORE RM) ......................................................08Tipos de Dados................................................................................................................08Nomeclatura das tabelas do CORPORE RM ....................................................................09Relacionamento entre tabelas ..........................................................................................10

Diagrama de Relacionamento ................................................................................11MÓDULMÓDULO 2O 2..............................................................................................................................12

Manipulação dos Bancos de Dados ................................................................................12Famílias de Comandos SQL ............................................................................................12O Comando SELECT ........................................................................................................12

Cláusula Select ......................................................................................................13Cláusula FROM ......................................................................................................13

Funções de Agrupamento................................................................................................15Cláusula WHERE ....................................................................................................17Operadores ............................................................................................................17Cláusula GROUP BY ..............................................................................................19Cláusula ORDER BY................................................................................................19Cláusula HAVING ..................................................................................................20Cláusula UNION ....................................................................................................20

Alias de Tabela (Apelidos) ................................................................................................21Exercícios - Sentenças RM Labore ..................................................................................21

MÓDULMÓDULO 3O 3..............................................................................................................................23Consultas com Junção ....................................................................................................23Alias de Tabela (Apelidos) ................................................................................................24Exercícios - Sentenças RM Labore ..................................................................................24Exemplos de Aplicação das Sentenças SQL ....................................................................28

Gerador ..................................................................................................................28Planilha ..................................................................................................................29

Passagem de Parâmetros ................................................................................................30MÓDULMÓDULO 4O 4..............................................................................................................................31

Outer Joins......................................................................................................................31Exercícios - Sentenças RM Labore ..................................................................................32

MÓDULMÓDULO 5O 5 ............................................................................................................................33Exercícios Gerais..............................................................................................................33

Teóricos..................................................................................................................33Setenças RM Fluxus ..............................................................................................33Setenças RM Saldus ..............................................................................................35Setenças RM Labore ..............................................................................................35Setenças RM Nucleus ............................................................................................38

MÓDULMÓDULO 6O 6..............................................................................................................................39BI(Business Intelligence) ..................................................................................................39Iniciando o RM Bis ..........................................................................................................39Menu Cadastros ..............................................................................................................40

Cadastros / Tipos de Cubos....................................................................................41Relatórios / Cubos(EIS) ..........................................................................................41

Criando Cubos ................................................................................................................42Roteiro....................................................................................................................42

Editando Cubos ..............................................................................................................48Pasta Cubo de Decisão ..........................................................................................48Ícones do Cubo ......................................................................................................48

Áreas de Divisão do Cubo................................................................................................49Alterando a Dimensão da Análise dos Dados ........................................................51Para Acrescentar uma Dimensão na Área de Consulta ..........................................51Para Remover uma Dimensão da Área de Consulta................................................51Para Alterar a posição de uma Dimensão da Área de Consulta ..............................52Para Selecionar / Não Selecionar Registros de uma Dimensão................................52

Gráfico ............................................................................................................................52Botões Disponíveis ................................................................................................52Para aumentar/diminuir a escala do gráfico ............................................................53

Exercícios ........................................................................................................................53ANEXANEXOSOS ..................................................................................................................................54

Treinamentos RM Sistemas ............................................................................................54

Consultas SQL à base Consultas SQL à base CORPORE RM / RM BisCORPORE RM / RM Bis

Versão: 6.0.2

ÍNDICEÍNDICE

Page 4: RM Bis.pdf

Visão Geral do CORPORE RM - Administrativo

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 5: RM Bis.pdf

ApresentaçãoApresentação

Objetivos do Curso

Apresentar ao aluno conceitos básicos de banco de dados e da linguagemde consulta estruturada (SQL), bem como os procedimentos de configura-ção dos aplicativos que fazem parte do CORPORE RM.

Conteúdo Programático

Conceito de Banco de Dados Relacional;O ambiente Cliente/Servidor (Redes X Bancos de Dados);Diagrama de entidades e relacionamentos;Relacionamento entre tabelas;A distribuição dos aplicativos CORPORE RM na rede;Comandos de Manipulação de Dados - Consultas SQL Básicas;O comando SELECT (Consultas Simples e com Junção);Exercícios.

Expectativas do Curso

Ao final do curso, espera-se que o participante esteja apto a executar con-sultas com a utilização exclusivamente da cláusula SELECT.

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 5

ANOTAÇÕES

Page 6: RM Bis.pdf

Módulo 1Módulo 1

Introdução Teórica

Bancos de Dados e SGBD

Qualquer sistema de arquivamento de dados eletrônico pode ser considera-do um banco de dados. Existem diversos tipos de sistemas de arquivamen-to e como exemplo podemos citar o Microsoft Excel.Um Sistema Gerenciador de Banco de Dados (SGBD) consiste numa coleçãode dados inter-relacionados e, um conjunto de programas para acessaresses dados. A coleção de dados é geralmente classificada como o bancode dados. O principal objetivo de um SGBD é proporcionar um ambienteconveniente e eficiente, para coletar e armazenar informações no banco dedados.

O gerenciador de banco de dados é o módulo que provê a interface entre asinformações armazenadas no banco de dados e, os programas de aplicaçãoe consultas submetidas ao sistema. O gerenciador é responsável pela inte-ração com o sistema operacional, para o gerenciamento do acesso aosarquivos, para a garantia de integridade e segurança, pelo backup e recupe-ração de dados e controle de concorrência.

Existem diversos modelos de banco de dados, entre eles podemoscitar:

modelo de rede;modelo hierárquico;modelo relacional;modelo orientado a objetos.

Dentre este modelos vamos destacar o modelo relacional, que envolve oconceito de armazenar dados em um único “objeto” centralizador, estrutu-rado internamente em tabelas e colunas que se relacionam entre si, atravésde chaves primárias e estrangeiras, que são os campos comuns entre astabelas.Citemos alguns Sistemas Gerenciadores de Banco de Dados Relacionais(SGBDR), existentes no mercado: MS-SQL Server, Oracle, Sybase, Informix,Progress, DB2, etc.; os quais podem gerenciar todas as suas informações apartir de um único arquivo de banco de dados.

O CORPORE RM trabalha com os seguintes bancos de dados:

Versão 8.0 e 8.i Versão 7.0 e 2000

Tabelas

Unidade básica de armazenamento em um banco de dados relacional.

Propriedades

Tabelas têm nomes únicos;São compostas por linhas e colunas;Linhas e colunas podem estar em qualquer ordem;Preferencialmente devem possuir um identificador único: chaveprimária (Primary Key);Colunas: são também chamadas de atributos ou campos.

6 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 7: RM Bis.pdf

Exemplos de tabelas:gcoligada (armazena informações referentes às empresas coli-gadas);gfilial (armazena informações referentes às filiais das empresascoligadas);psecao (armazena informações referentes às seções das filiaisdas empresas coligadas);pfunc (armazena informações referentes aos funcionários dasempresas).

Chaves PrimáriasUma chave primária (primary key) é um campo ou conjunto de campos, queidentifica de forma única um registro de uma tabela. Ou seja, se um campoé chave primária de uma tabela, cada registro deve possuir um valor dife-rente para este campo. Normalmente, usamos como chave primária camposde identificadores, como código da coligada (codcoligada), código da filial(codfilial), etc. As chaves primárias podem ser compostas por mais de umacoluna.

Chaves EstrangeirasUma chave estrangeira (foreign key) é um campo ou conjunto de campos,que correspondem à chave primária de uma outra tabela. A chave estran-geira é usada principalmente para relacionamento entre tabelas.

Podemos dizer:O conjunto das colunas codcoligada, nomefantasia e nome formam a tabe-la gcoligada. O conjunto das tabelas gcoligada, gfilial, psecao, pfunc, pcargo, pfuncao,pcodsituacao, psindic e gbanco formam um Banco de Dados Relacional.O conjunto de todas as tabelas utilizadas por todos os nossos aplicativos forWindows, formam o banco de dados CORPORE RM.

Bancos de Dados Cliente/Servidor

Antes de surgirem os bancosde dados cliente/servidor, amaioria dos bancos de dadosarmazenava seus dados namesma máquina onde erammanipulados. Com o surgi-mento das redes locais, osbancos de dados foramtransferidos para o computadorcentral, que armazenava osregistros, en-quanto os nós darede (computadores cliente,estações de trabalho de cadausuário) requisitavam taisdados para manipulá-los.

Client Application

SQL Server

A

B

C

chapa nome endereço telefone ……...

100110021003100410051006

JoãoAlbertoFrancisoMariaSôniaRoberto

…….…….……..……..……...……….

55544444687999NULL56789000988855NULL

~~~~~~~~~

~~~~~~

FuncionáriosFuncionários

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 7

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 8: RM Bis.pdf

Com a difusão dos bancos de dados cliente/servidor, este problema foi supe-rado. Isto porque, agora, ao realizar uma pesquisa em uma tabela de umbanco de dados cliente/servidor, apenas o resultado da pesquisa é transfe-rido para a máquina cliente, o que reduz o tráfego na rede. Comandos sãoenviados ao servidor de banco de dados e os resultados são retornados àestação/cliente.

Observação:Os aplicativos do CORPORE RM acessam o servidor através doBDE, que retorna apenas a consulta ou o resultado final para asestações cliente.

Distribuição dos softwares na Rede (CORPORE RM)

Primeiramente, devemos separá-los em 4 (quatro) grupos:

SGBDR - Sistema de gerenciamento do banco de dados relacional(Interbase, MS SQL Server, Oracle);

Base de Dados - Base de dados vazia ou exemplo (CORPORE RM);

BDE - Borland DataBase Engine (Localiza o Servidor do Banco deDados);

Aplicativos - CORPORE RM;

No Ambiente Cliente/Servidor

No Servidor - Instala-se o SGBDR e a Base de Dados (MS-SQL, Oracleou Interbase).

Nas Estações Clientes - Se for SQL Server ou Oracle, instala-se ocliente SQL dos mesmos, instala-se então o BDE e, posteriormente, osAplicativos RM.

No Ambiente Local

Estação Local - Instala-se o SGBDR, a Base de Dados, o BDE e osAplicativos.

Tipos de Dados

Os tipos de dados abaixo relacionados, são tipos suportados pelos bancosde dados relacionais, geralmente usados no sistema:

Char (n)Armazena até 255 caracteres. O parâmetro “n” define o número decaracteres a serem alocados. Este número é fixo, independente dotamanho dos dados registrados no campo.

Varchar (n)Armazena até 255 caracteres. Ao contrário de CHAR, este tipo sóarmazena os dados efetivamente registrados, utilizando, portanto,menor espaço em disco.

DatetimeArmazena datas. O padrão é MM-DD-YYYY HH:MMAM. Paraapresentar somente horas, o valor precisa conter um sinal de doispontos (:) ou a expressão AM ou PM. Sempre informe valores destetipo entre aspas simples.

Numeric (p, s)Armazena números exatos entre: 1038 ~ 1~ a 1038 ~ 1Os parâmetros p e s definem a precisão.

8 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 9: RM Bis.pdf

IntArmazena números inteiros, que podem variar de -2.147.483.648 a 2.147.483.647.

SmallintArmazena números com valores inteiros, que podem variar de -32.768a 32.767.

TextTipo de dado de tamanho variável, que armazena caracteres. Deve serutilizado entre aspas simples. Suporta uma grande quantidade dearmazenamento de textos.

ImageTipo de dado de tamanho variável, que armazena dados do tipo biná-rio. Deve ser precedido de 0x.

Exemplo:Fotos, mapas, imagens digitalizadas.

Observação:Campos date e texto (char, varchar, etc) devem sempre aparecerentre aspas simples em expressões.

Nomenclatura das tabelas do CORPORE RM

A base de dados do CORPORERM é composta de várias tabelasrelativas aos aplicativos. Paramaior facilidade de manipulaçãodos dados, estas tabelas foramnomeadas (codificadas) de acor-do com o aplicativo. Por exemplo,todas as tabelas que iniciam coma letra T, são tabelas perten-centes ao aplicativo RM Nucleus.Veja tabela a seguir:

Sistema CódigoRM CHRONUS ARM TESTIS BRM SALDUS CRM LIBER DRM CLASSIS - E ERM FLUXUS FRM BIS GRM AGILIS HRM BONUM IRM PLANOS JRM FACTOR KRM BIBLIOS LRM SOLUM MRM OFFICINA NRM SAÚDE ORM LABORE PRM NUCLEUS TRM CLASSIS - U URM VITAE VRM SGI X

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 9

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 10: RM Bis.pdf

Relacionamento entre tabelasDe acordo com os conceitos de banco de dados relacional, haverárelacionamento quando existirem campos comuns entre as tabelas. Estescampos correspondem à chave primária e estrangeira destas tabelas.

Veja exemplo de relacionamento com as tabelas do RM Labore:

1) gcoligada.codcoligada pfunc.codcoligada

2) gfilial.codcoligada pfunc.codcoligadagfilial.codfilial pfunc.codfilial

3) psecao.codcoligada pfunc.codcoligadapsecao.codigo pfunc.codsecaopsecao.codfilial pfunc.codfilial

4) psindic.codcoligada pfunc.codcoligadapsindic.codigo pfunc.codsindicato

5) gbanco.numbanco pfunc.codbancopagto ou pfunc.codbancofgts

6) pfuncao.codcoligada pfunc.codcoligadapfuncao.codigo pfunc.codfuncao

7) pcodsituacao.codcliente pfunc.codsituacao

8) pcargo.codcoligada pfuncao.codcoligada pfunc.codcoligadapcargo.codigo pfuncao.cargo

pfuncao.codigo pfunc.codfuncao

10 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 11: RM Bis.pdf

Diagrama de RelacionamentoPara facilitar a visualização das tabelas de um aplicativo e o relacionamentoentre as mesmas, dispomos de exemplo gráfico das tabelas.

Aplicativo RM Labore

DIAGRAMA DE ENTIDADES E RELACIONAMENTOS

*Codcoligada - Smallint*Chapa - Varchar (16)#Codfilial - Smallint#Codsecao - Varchar (35)#CodFuncao - Varchar (10)#Codsindicato - Varchar (10)#Codsituacao - Char (1)#Codbancofgts - Varchar (3)#Codbancopagto - Varchar (3)Nome - Varchar (45)SalarioDataadmissao - Datetime (8)Datademissao - Datetime (8)

PFUNC

PFUNCAO*Codcoligada - Smallint*Codigo - Varchar (10)#Cargo - Varchar (16)Nome - Varchar (40)

*Codcoligada - Smallint#Chapa - Varchar (16)*Nro Depend - SmallintNome - Varchar (30)Sexo - Varchar (1)

PFDEPEND

*Codcoligada - Smallint*Codigo - Varchar (16)Nome - Varchar (40)

PCARGO

GCOLIGADA

*Codcoligada - SmallintNome - Varchar (40)Nomefantasia - Varchar (35)

GFILIAL*Codcoligada - Smallint*Codfilial - SmallintNome - Varchar (40)Nomefantasia - Varchar (35)

*Codcoligada - Smallint*Codigo - Varchar (35)#Codfilial - SmallintDescricao - Varchar (60)

PSECAO

PSINDIC

*Codcoligada - Smallint*Codigo - Varchar(10)Nome - Varchar (120)

PCODSITUACAO

*Codcoligada - Smallint*Codcliente - Char (1)Descricao - Varchar (50)

*Numbanco - Varchar (3)Nome - Varchar (40)

GBANCO

1

N

1

N

1

N1

N

1

N

1

N

1

N

1

N

N 1

N 1

N 1

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 11

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 12: RM Bis.pdf

MÓDULMÓDULO 2O 2

Manipulação dos Bancos de DadosPadrão SQL (Structured Query Language)

Linguagem estruturada de consulta e manipulação dos elementos no bancode dados, é um padrão internacional inicialmente desenvolvido pela IBM,agora coordenado pela ANSI-standard, sendo que sua última publicação foiem 1992.

Características:Padronizada para os bancos de dados relacionais.Cada comando é uma descrição do que se deseja obter; quem exe-cuta o comando é o gerenciador do banco de dados.

Famílias de Comandos SQL

DDL - Linguagem de Definição de DadosComandos de manipulação da estrutura do banco de dados (create, alter,drop, rename).

DML - Linguagem de Manipulação de DadosComandos de manipulação dos registros (dados) do banco de dados (insert,select, update, delete).

DCL - Linguagem de Controle de DadosComandos de manipulação de acesso a estrutura/registros do banco dedados (grant, revoke).

A família de comandos DML está associada diretamente ao dia-a-dia doTécnico de Suporte, principalmente, o comando SELECT. Tendo em vistaque os aplicativos do CORPORE RM têm a função de inserir dados (insert),deletar dados (delete) e modificar dados (update), não é aconselhável exe-cutarmos tais procedimentos através do software do banco de dados. Noentanto, temos total liberdade de nos aprofundarmos na exploração dosrecursos, que o comando SELECT nos oferece para extração de dados,convertendo-os em uma rica fonte de consulta.

O comando SELECT

Seleciona linhas e colunas de uma tabela;Na estrutura do comando SELECT, cada parte do comando é chama-da de Cláusula.

Cláusula SELECT: Lista colunas (campos) para visualização;Cláusula FROM: Tabela(s) de procura;Cláusula WHERE: Lista de condições;Cláusula GROUP BY: Colunas para serem agregadas;Cláusula HAVING: Especifica as Condições do uso de agrupamento(funções);Cláusula ORDER BY: Lista de coluna(s) para ordenação [ASC (ascen-dente)| DESC (descendente)].

Para efeitos didáticos dividiremos o comando SELECT em dois tipos de con-sultas:

1) Consultas simples (em uma única tabela). 2) Consultas com junção (em duas ou mais tabelas).

12 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 13: RM Bis.pdf

Cláusula SELECT

SintaxeSELECT (Lista de Colunas);

Lista de ColunasSão as colunas (Campos) a serem selecionadas na tabela, podendo serseparadas por vírgula. Caso você deseje ver todos os campos da tabelas use o caracter * (asterisco).

Argumentos

DISTINCTDefine a visualização somente dos campos com valores distintos, ou seja,sem repetição;

ALLDefine que todos os registros serão selecionados, este argumento é odefault, assim sendo, não é necessário escrevê-lo na setença de consulta.

Cláusula FROM

Tabelas com os dados a serem pesquisados;

Lista de TabelasÉ a lista de tabelas, cujos registros serão selecionados. Se desejar selecio-nar mais de uma tabela ou mais de um campo, separe-os por vírgula.

Executando sentenças de consultas SQLO usuário terá à disposição em todos os aplicativos CORPORE RM, um íconepara acesso ao editor de consultas. No exemplo, utilizaremos o AplicativoRM Labore, no entanto poderá ser acessado de qualquer aplicativo.

Clique no botão correspondente, na barra de ferramentas do aplicativo, ouacesse MENU UTILITÁRIOS / CONSULTAS SQL.Será apresentada a janela de visão de consultas. Para inserir uma novaconsulta, basta clicar no ícone "Inserir Novo", a seguinte janela seráapresentada:

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 13

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 14: RM Bis.pdf

Como exemplo utilizaremos, inicialmente, a consulta de seleção defuncionários:

SELECT NOME, SALARIO FROM PFUNC

Campos selecionadosNome e salário.

Tabela a ser pesquisadaPFUNC, tabela de funcionários do aplicativo RM Labore.

Para verificar o resultado da consulta, o usuário deve pressionar o botãoExecutar.

Será apresentado o seguinte resultado:

Algumas sentenças serão muito utilizadas para localização das tabelas ecolunas do CORPORE RM.

Exemplos:SELECT * FROM GSISTEMALista todos os dados dos sistemas CORPORE RM.

SELECT * FROM GCAMPOS Ideal para localização das tabelas e colunas do CORPORE RM.

SELECT * FROM GCAMPOSWHERE DESCRICAO = ‘FUNCIONARIOS‘

SELECT * FROM GCAMPOSWHERE TABELA = ‘PFUNC‘ ANDDESCRICAO = ‘SALARIO‘

SELECT * FROM GLINKSRELLista todos os relacionamentos das tabelas.

SP_HELP PFUNC Lista todas as informações da tabela pfunc: O nome das colunas,as chaves primárias, chaves estrangeiras, tipos de dados, índi-ces, etc.

Observação:SP_HELP é uma stored procedure e somente pode ser executadano Banco de Dados, através do módulo “Query Analyzer”.

14 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 15: RM Bis.pdf

Aplicativo RM Labore:

SELECT ALL CODSITUACAO FROM PFUNCLista todos os códigos de situação existentes na tabela de funcionários (comrepetição).

SELECT DISTINCT CODSITUACAO FROM PFUNCLista todos os códigos de situação existentes na tabela de funcionários (semrepetição).

SELECT * FROM PFUNCLista todos os registros e colunas da tabela pfunc (funcionários).

SELECT NOME, SALARIO FROM PFUNCLista todos os registros da tabela pfunc e somente as colunas com osnomes e salários dos funcionários.

SELECT NOME, DATADEMISSAO FROM PFUNCWHERE DATADEMISSAO IS NOT NULLLista todos os nomes de funcionários que tenham data de demissão diferen-te de nula (preenchida).

Aplicativo RM Nucleus

SELECT CODIGOPRD CODIGO, NOMEFANTASIA, PRECO1, PRECO2,PRECO3, CODUNDCONTROLE FROM TPRDLista os seguintes dados da tabela de produtos:Código, nome fantasia, preço 1, 2 e 3, e código da unidade de controle.

SELECT CODIGOCONTRATO, DATACONTRATO, VALORCONTRATO,DATAINICIO, DATAFIM FROM TCNTLista os seguintes campos da tabela de contratos:Código do contrato, data do contrato, valor, data inicial e final do contrato.

Funções de Agrupamento

Funções que retornam resultados baseados em grupos de linhas. Porpadrão todas as linhas de uma tabela são tratadas como um grupo.

Observação:As funções de agrupamento ignoram valores nulos. A únicaexceção é a função COUNT, que em alguns tipos de aplicaçãopoderão considerar também os valores nulos.

As funções que serão estudadas neste curso são:

1) COUNT;2) AVG;3) MAX;4) MIN;5) SUM.

Observação:Usando o DISTINCT, a função só atua nos valores diferentes.

1. COUNT: Retorna o número de itens de um grupo;

Exemplos:Utilizando Tabelas do RM Nucleus

SELECT COUNT (*) FROM TPRDLista a quantidade de produtos existentes na tabela.

SELECT COUNT (DISTINCT PRECO1) FROM TPRDLista a quantidade de produtos que não tenham preços repetidos.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 15

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 16: RM Bis.pdf

2. SUM: Soma todos os valores da coluna selecionada, os valores nulossão ignorados.

Exemplos:Utilizando Tabelas do RM LaboreSELECT SUM (SALARIO) FROM PFUNCLista o total (soma) de salários de todos os funcionários da tabe-la.

SELECT SUM (DISTINCT SALARIO) FROM PFUNCLista o total (soma) de salários não repetidos de todos os funcio-nários da tabela.

3. AVG: Calcula a média aritmética dos valores de uma coluna, os valo-res nulos são ignorados.

Exemplos: SELECT AVG(SALARIO) FROM PFUNC Lista a média de salários. Primeiramente ele soma os salários decada funcionário e depois divide o total encontrado pela quanti-dade de registros.

SELECT AVG(DISTINCT SALARIO) FROM PFUNC Lista a média dos salários não repetidos da tabela.

4. MAX: Lista o maior valor de uma coluna.

Exemplos: SELECT MAX(SALARIO) FROM PFUNCLista o maior salário da tabela.

5. MIN: Lista o menor valor de uma coluna, valor Nulo é ignorado.

Exemplos: SELECT MIN(SALARIO) FROM PFUNCLista o menor salário da tabela.

16 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 17: RM Bis.pdf

Cláusula WHERE

WHEREDetermina uma condição que os registros devem satisfazer, para seremselecionados em uma ou mais tabelas.

Exemplo:SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO<=500.00Lista todos os nomes e salários de funcionários com saláriomenor ou igual 500,00 reais.

Utilizando Tabelas do RM Fluxus.

SELECT IDLAN, CODCFO, DATAVENCIMENTO, VALORORIGINALFROM FLANWHERE DATAVENCIMENTO>='01/01/2004'

Operadores

Há diversos tipos de operadores. Quando mais de um tipo de operador estápresente em uma expressão, eles são avaliados segundo uma ordem de pre-cedência, descrita na lista a seguir:

1. (+) Positivo, - Negativo, ~ NOT2. (*) Multiplicação, (/) Divisão, (%) Módulo3. (+) ADD e Concatenação, (-) Subtração4. = , <, >, =>, <=,!=, !>,!< (Comparação)5. NOT6. AND7. ALL, ANY, BETWEEN, IN, LIKE OR SOME

Exemplos:

1. (+) ADD:Exemplo:SELECT NOME, SALARIO + 400 FROM PFUNCSeleciona o nome dos funcionários, adicionando 400 reais nosalário de todos.

2. CONCATENAÇÃO:Exemplo:.SELECT NOME, RUA+ ','+ NUMERO FROM PPESSOASeleciona o nome dos funcionários, unindo as colunas Rua eNúmero.

3. DIVISÃOExemplo:SELECT NOME, SALARIO / 20 FROM PFUNCSeleciona o nome e o salário dos funcionários dividido por 20.

A Tabela abaixo mostra os operadores aceitos em comparações:

COMPARAÇÃOIgualdade =Desigualdade < >Maior que >Menor que <Maior ou igual a > =Menor ou igual a < =Não maior que ! >Não menor que ! <Não igual a ! =

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 17

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 18: RM Bis.pdf

Exemplos de consulta com os Operadores de Comparação:

Igual a (=)SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO = 580Lista todos os nomes e salários dos funcionários, com salário igual aR$ 580,00.

Diferente de (<>) SELECT NOME, CODSECAO FROM PFUNC WHERE CODSECAO <> '01.01'Lista todos os nomes e códigos de seção dos funcionários, exceto os daseção 01.01.

Maior que (>)SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO >500Lista todos os nomes e salários dos funcionários, com salário maior que R$500,00.

Maior ou igual a (>=) SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO >=500Lista todos os nomes e salários dos funcionários, com salário maior ou iguala R$ 500,00.

Menor que (<)SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO <500Lista todos os nomes e salários dos funcionários, com salário menor queR$ 500,00.

Menor ou igual a (<=)SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO <=500Lista todos os nomes e salários dos funcionários, com salário menor ouigual a R$ 500,00.

IN: Compara um valor com uma lista de valores.SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO IN (500, 700, 800, 900)Lista todos os nomes e salários dos funcionários, com salários iguais aR$ 500,00, R$ 700,00, R$ 800,00 e R$ 900,00.

LIKE: Permite procurar strings que atendam determinado padrão depesquisa.%(Percentual) - Substitui por um ou mais caracteres._(Underscore) - Substitui por um único caracter.

Exemplos:SELECT NOME FROM PFUNC WHERE NOME LIKE 'M%'Lista todos os nomes de funcionários iniciados com a letra 'M'.

SELECT NOME FROM PFUNC WHERE NOME LIKE '%O'Lista todos os nomes de funcionários terminados com a letra 'O'.

SELECT NOME FROM PFUNC WHERE NOME LIKE 'J_A%'Lista todos os nomes de funcionários iniciados com a letra 'J', 1caracter qualquer seguido da letra ‘A‘ e, terminados com quais-quer combinações de nomes.

SELECT NOME FROM PFUNC WHERE NOME NOT LIKE'MARIA_%'Lista todos os nomes de funcionários exceto as 'MARIAS'.

18 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 19: RM Bis.pdf

IS NULL: Testa valores que são nulos.SELECT NOME, DATADEMISSAO FROM PFUNC WHERE DATADEMISSAO IS NULLLista os nomes de funcionários que tenham data de demissão nula (semdado).

NOT: Inverte o resultado de uma condição.SELECT NOME, DATADEMISSAO FROM PFUNCWHERE DATADEMISSAO IS NOT NULL

Podemos negar expressões com os seguintes operadores: <>, NOT, NOT BETWEEN, IS NOT NULL, NOT EXISTS, NOT LIKE, NOT IN.

Cláusula GROUP BY

GROUP BYAgrupa linhas de uma tabela dentro de grupos menores. É utilizada em con-junto com as funções de grupo.

Exemplo:SELECT CODSECAO, AVG(SALARIO) FROM PFUNCGROUP BY CODSECAO Lista a média salarial agrupada por seção.

Cláusula ORDER BY

ORDER BYDefine a ordem das linhas do resultado de uma pesquisa. Deve ser a últimacláusula do SELECT. Utiliza-se ASC (ordem crescente) e DESC (ordemdecrescente). O padrão de ordenação é ASC.

Ordem default:1º) Valores numéricos menores;2º) Valores de datas mais antigas;3º) Caracteres em ordem alfabética;

Para alterar a ordem default: Colocar DESC depois do nome da coluna nacláusula ORDER BY.

Observação:Os valores nulos são mostrados por último para seqüênciasascendentes.

Exemplos:SELECT NOME, SALARIO FROM PFUNC ORDER BY NOME ASCLista todos os registros da tabela pfunc, apresentando somenteas colunas com os nomes (em ordem alfabética) e salários dosfuncionários.

SELECT NOME, SALARIO FROM PFUNC ORDER BY NOME DESCLista todos os registros da tabela pfunc, apresentando somenteas colunas com os nomes (em ordem decrescente) e saláriosdos funcionários.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 19

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 20: RM Bis.pdf

Cláusula HAVING

HAVINGUsada para selecionar os grupos que serão mostrados, com base nas infor-mações das funções de grupo.

Exemplo:SELECT PSECAO.CODIGO, SUM(SALARIO), MAX(SALARIO),COUNT(CHAPA)FROM PSECAO, PFUNCWHERE PSECAO.CODIGO=PFUNC.CODSECAO GROUP BY PSECAO.CODIGOHAVING MIN(SALARIO)>1000

Mostra o código da seção, a soma dos salários, o maior salárioe o número de funcionários, desde que o menor salário sejasuperior a 1000.

Cláusula UNION

UNIONUsada para unir duas ou mais consultas (SELECT).

Exemplos:SELECT CHAPA, NOME, LOCALNASCIMENTO FROM PFDEPENDWHERE LOCALNASCIMENTO='BETIM' UNION SELECT CHAPA, NOME, LOCALNASCIMENTO FROMPFDEPEND WHERE LOCALNASCIMENTO='SALVADOR'Lista o nome de todos os dependentes dos funcionários, quenasceram em Betim e todos os nascidos em Salvador.

SELECT CHAPA, NOME, LOCALNASCIMENTO FROM PFDEPENDWHERE LOCALNASCIMENTO='BETIM' OR LOCALNASCIMENTO='SALVADOR'Essa sentença também irá trazer o mesmo resultado, porém uti-lizando a opção: OR.

Um outro exemplo da cláusula Union:SELECT NOME, SALARIO FROM PFUNCWHERE SALARIO = (SELECT MIN(SALARIO)FROM PFUNC)UNIONSELECT NOME, SALARIO FROM PFUNCWHERE SALARIO = (SELECT MAX(SALARIO)FROM PFUNC)

20 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 21: RM Bis.pdf

Alias de Coluna (Apelidos)

O Alias de coluna serve para nomear (apelidar) uma coluna em uma deter-minada consulta. É muito útil para utilização de nomes mais sugestivos, nomomento da visualização da consulta.

Exemplo:SELECT NOME, DATAADMISSAO ADMISSAO FROM PFUNC

Exercícios

Sentenças RM Labore:

1) Selecione os nomes, em ordem alfabética, de todos os funcionáriosda Matriz (filial 1), bem como o código da filial.

SELECT NOME, CODFILIAL FROM PFUNC WHERE CODFILIAL=1 ORDER BY NOME

2) Selecione os nomes e salários (estes em ordem decrescente) dos fun-cionários, cujos salários não estejam entre 400,00 e 500,00 Reais,que foram admitidos em maio de 2000, que trabalham na filial 1 eque possuam a função 00018.

SELECT NOME, SALARIO FROM PFUNCWHERE SALARIO NOT BETWEEN 400 AND 500 AND DATAADMISSAO BETWEEN '05/01/2000' AND '05/31/2000' ANDCODFILIAL=1 ANDCODFUNCAO=00018ORDER BY SALARIO DESC

3) Selecione os nomes dos funcionários da Filial 1, cujo nome contenhaa letra N.

SELECT NOME FROM PFUNCWHERE CODFILIAL=1 AND NOME LIKE '%N%'

4) Liste os nomes e os salários dos funcionários da coligada 1, cujonome contenha a letra M e o salário seja superior a 500.

SELECT NOME, SALARIO FROM PFUNCWHERE NOME LIKE '%M%' AND SALARIO > 500 AND CODCOLIGADA=1

5) Selecione os nomes, as chapas, os salários e a data de admissão dosfuncionários cujos salário não estejam entre 400,00 e 500,00 reais,que foram admitidos em maio de 2000 e que trabalham na filial 1.

SELECT NOME, CHAPA, SALARIO, DATAADMISSAO FROM PFUNCWHERE SALARIO NOT BETWEEN 400 AND 500 ANDDATAADMISSAO BETWEEN '05/01/2000' AND '05/31/2000' ANDCODFILIAL=1

6) Selecione a quantidade de funcionários agrupados por seção, quepertençam a coligada 1.

SELECT CODSECAO, COUNT(*) FROM PFUNCWHERE CODCOLIGADA=1 GROUP BY CODSECAO

7) Mostre a média salarial, o maior e o menor salário de cada filial.

SELECT CODFILIAL, AVG(SALARIO) MEDIA, MAX(SALARIO)MAXIMO, MIN(SALARIO) MINIMO FROM PFUNCGROUP BY CODFILIAL

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 21

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 22: RM Bis.pdf

8) Mostre os códigos das seções e a média salarial das mesmas, massomente das que possuem a média salarial maior que 500.

SELECT CODSECAO, AVG(SALARIO) MEDIA FROM PFUNCGROUP BY CODSECAOHAVING AVG(SALARIO)>500

9) Selecione o nome e data de admissão dos funcionários mais antigosda empresa.

SELECT NOME, DATAADMISSAO FROM PFUNCWHERE DATAADMISSAO=(SELECT MIN(DATAADMISSAO) FROMPFUNC)

10) Informe a filial, o número de funcionários de cada filial, a soma dossalários, o maior salário e o menor salário. “Apelidando” as colunas:Filial, Total, Maior e Menor.

SELECT CODFILIAL FILIAL, COUNT(CHAPA)TOTAL, SUM(SALARIO)SOMA, MAX(SALARIO) MAIOR,MIN(SALARIO) MENOR FROM PFUNCGROUP BY CODFILIAL

11) Quantos funcionários existem em cada sindicato relacionado à empre-sa?

SELECT CODSINDICATO, COUNT(CHAPA) TOTAL FROM PFUNCGROUP BY CODSINDICATO

12) Selecione o código da seção, a quantidade de funcionários, sendo ocódigo da situação igual a A (ATIVO) e, somente da seção com maisde dois funcionários.

SELECT CODSECAO SECAO, CODSITUACAO SITUACAO,COUNT(CHAPA) TOTAL FROM PFUNCGROUP BY CODSECAO, CODSITUACAOHAVING COUNT(CHAPA)>2

13) Informe os nomes dos funcionários que trabalham na seção 01.01,que possuam função 00011 ou 00012 e que ganham salário maiorque 400, em ordem decrescente.

SELECT NOME, CODSECAO SECAO, CODFUNCAO FUNCAO,SALARIO FROM PFUNCWHERE CODSECAO=01.01 AND(CODFUNCAO='00010' OR CODFUNCAO='00011') ANDSALARIO >400ORDER BY SALARIO DESC

14) Selecione o nome, data de admissão e o código da coligada dos fun-cionários, que foram admitidos em maio de 2000 e cujo o nome seinicie com a letra ‘J’.

SELECT NOME, DATAADMISSAO, CODCOLIGADA FROM PFUNCWHERE DATAADMISSAO BETWEEN '05/01/2000' AND '05/31/2000'AND NOME LIKE 'J%'

22 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 23: RM Bis.pdf

MÓDULMÓDULO 3O 3

Consultas com junção (duas ou mais tabelas - INNER JOIN, ligação)

A sintaxe é praticamente a mesma. A diferença está na utilização da cláu-sula WHERE, necessária para se fazer a ligação entre as tabelas. É impres-cindível que as colunas de ligação sejam realmente idênticas (conteúdo). Éna junção de tabelas, que a teoria dos bancos de dados relacionais, se apóiapara se diferenciar dos não-relacionais.

A ligação entre tabelas é necessária sempre que for preciso selecionar um“valor” de uma coluna, de uma tabela “Pai” ou de uma tabela “filha” emrelação a tabela principal de sua sentença SQL.

Exemplo:SELECT GFILIAL.NOME, PFUNC.CHAPA FROM GFILIAL, PFUNCWHERE GFILIAL.CODCOLIGADA=PFUNC.CODCOLIGADAAND GFILIAL.CODFILIAL=PFUNC.CODFILIAL

Neste exemplo, a tabela principal é a PFUNC (funcionários da empresa) enão temos o nome da filial fazendo parte de sua estrutura. O nome da filialestá na tabela GFILIAL (Filiais da empresa). Sendo assim, ligamos as colu-nas em que os conteúdos sejam idênticos (fazem parte das chaves primá-rias e estrangeiras das tabelas envolvidas). A tabela PFUNC é filha da tabe-la GFILIAL, pois, a coluna CODFILIAL é chave primária em GFILIAL, e, con-seqüentemente, é chave estrangeira em PFUNC.

Exemplos:

SELECT GCOLIGADA.NOME, PFUNC.CHAPA, PFUNC.NOMEFROM GCOLIGADA, PFUNCWHERE GCOLIGADA.CODCOLIGADA=PFUNC.CODCOLIGADALista o nome da coligada e as chapas dos funcionários.

SELECT PSECAO.DESCRICAO, PFUNC.CHAPA, PFUNC.NOMEFROM PSECAO, PFUNCWHERE PSECAO.CODCOLIGADA=PFUNC.CODCOLIGADAAND PSECAO.CODIGO=PFUNC.CODSECAOLista a descrição da seção e as chapas dos funcionários.

SELECT GBANCO.NOME, PFUNC.CHAPA, PFUNC.NOMEFROM GBANCO, PFUNCWHERE GBANCO.NUMBANCO=PFUNC.CODBANCOPAGTOLista o nome do banco de pagamento e as chapas dos funcioná-rios.

SELECT GBANCO.NOME, PFUNC.CHAPA, PFUNC.NOMEFROM GBANCO, PFUNCWHERE GBANCO.NUMBANCO=PFUNC.CODBANCOFGTSLista o nome do banco de FGTS e as chapas dos funcionários.

SELECT PCODSITUACAO.DESCRICAO, PFUNC.CHAPA,PFUNC.NOMEFROM PCODSITUACAO, PFUNCWHERE PCODSITUACAO.CODCLIENTE=PFUNC.CODSITUACAOAND PCODSITUACAO.DESCRICAO LIKE ‘AF%’Lista o nome da situação (somente as que contém a descriçãoafastamento) e as chapas dos funcionários.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 23

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 24: RM Bis.pdf

Outro exemplo usando a opção INNER JOIN

SELECT PFUNC.NOME, PFUNCAO.NOME FROMPFUNC INNER JOIN PFUNCAOON PFUNC.CODCOLIGADA= PFUNCAO.CODCOLIGADA ANDPFUNC.CODFUNCAO= PFUNCAO.CODIGO

SELECT PCARGO.NOME, PFUNC.CHAPA, PFUNC.NOMEFROM PCARGO, PFUNC, PFUNCAOWHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADAAND PCARGO.CODIGO=PFUNCAO.CARGOAND PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADAAND PFUNCAO.CODIGO=PFUNC.CODFUNCAO

Lista o nome do cargo e as chapas dos funcionários. Observeque não existe ligação direta da tabela pcargo com pfunc. Foi ne-cessário utilizarmos a tabela pfuncao para compor o resultado.

Alias de Tabela (Apelido)

O Alias de tabela é utilizado para nomear (apelidar) uma tabela em umadeterminada consulta.

Exemplo:SELECT G.NOME, P.NOME FROM PFUNC P, GFILIAL GWHERE P.CODCOLIGADA=G.CODCOLIGADA AND P.CODFILIAL=G.CODFILIAL

Exercícios

Sentenças RM Labore:

1) Selecione os nomes dos funcionários, com o nome das seções emque os mesmos trabalham, sendo que as seções serão listadas emordem alfabética e os nomes em ordem decrescente.

SELECT PFUNC.NOME, PSECAO.DESCRICAOFROM PFUNC, PSECAOWHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGOORDER BY PSECAO.DESCRICAO ASC, PFUNC.NOME DESC

2) Selecione os nomes e a descrição da situação das funcionárias queestão de Licença Maternidade.

SELECT PFUNC.NOME, PCODSITUACAO.DESCRICAOFROM PFUNC, PCODSITUACAOWHERE PFUNC.CODSITUACAO=PCODSITUACAO.CODCLIENTEAND PCODSITUACAO.CODCLIENTE='E'

3) Selecione o nome da seção Comercial e o nome dos funcionários emordem alfabética.

SELECT PFUNC.NOME, PSECAO.DESCRICAOFROM PFUNC, PSECAOWHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGO ANDPSECAO.DESCRICAO LIKE 'COM%'ORDER BY PFUNC.NOME

24 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 25: RM Bis.pdf

4) Selecione a chapa, o nome dos funcionários e o nome das funçõesexercidas por cada um, em ordem crescente de nome da função.

SELECT PFUNC.CHAPA, PFUNC.NOME, PFUNCAO.NOME FROMPFUNC, PFUNCAOWHERE PFUNC.CODCOLIGADA=PFUNCAO.CODCOLIGADA ANDPFUNC.CODFUNCAO=PFUNCAO.CODIGOORDER BY PFUNCAO.NOME

5) Liste o nome das seções em que a média salarial seja maior ou iguala 1000 reais, e mostre o valor desta média.

SELECT PSECAO.DESCRICAO, AVG(PFUNC.SALARIO) MEDIA FROM PSECAO, PFUNCWHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGOGROUP BY PSECAO.DESCRICAOHAVING AVG(PFUNC.SALARIO)>=1000

6) Selecione os nomes dos funcionários, cargos e os nomes das seçõesda filial 1, em ordem de nome dos funcionários.

SELECT GFILIAL.CODFILIAL, PFUNC.NOME, PCARGO.NOMECARGO, PSECAO.DESCRICAO SECAOFROM GFILIAL, PFUNC, PCARGO, PSECAO, PFUNCAOWHERE PFUNC.CODFILIAL=GFILIAL.CODFILIAL ANDPFUNC.CODCOLIGADA=GFILIAL.CODCOLIGADA ANDPCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA ANDPCARGO.CODIGO=PFUNCAO.CARGO ANDPFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA ANDPFUNCAO.CODIGO=PFUNC.CODFUNCAO ANDPFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGO ANDPFUNC.CODFILIAL=1ORDER BY PFUNC.NOME

7) Liste os cargos que possuem salários com média salarial entre 500 e1500 reais, e mostre as médias dos mesmos.

SELECT PCARGO.NOME, AVG(PFUNC.SALARIO) FROM PCARGO,PFUNC, PFUNCAOWHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA ANDPCARGO.CODIGO=PFUNCAO.CARGO ANDPFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA ANDPFUNCAO.CODIGO=PFUNC.CODFUNCAOGROUP BY PCARGO.NOMEHAVING AVG(PFUNC.SALARIO) BETWEEN '500' AND '1500'

8) Mostre a média salarial, o maior e o menor salário de cada filial.

SELECT GFILIAL.NOME, AVG(PFUNC.SALARIO) MEDIA,MAX(PFUNC.SALARIO) MAXIMO, MIN(PFUNC.SALARIO) MINIMO FROM PFUNC, GFILIALWHERE PFUNC.CODCOLIGADA=GFILIAL.CODCOLIGADA ANDPFUNC.CODFILIAL=GFILIAL.CODFILIALGROUP BY GFILIAL.NOME

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 25

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 26: RM Bis.pdf

9) Mostre os Sindicatos, cuja a média salarial dos funcionários sejamaior que 500 reais.

SELECT PSINDIC.NOME, AVG(PFUNC.SALARIO) MEDIA FROMPSINDIC, PFUNCWHERE PFUNC.CODCOLIGADA=PSINDIC.CODCOLIGADA ANDPFUNC.CODSINDICATO=PSINDIC.CODIGOGROUP BY PSINDIC.NOMEHAVING AVG(PFUNC.SALARIO)>500

10) Mostre os nomes e o salário dos funcionários que trabalham na coli-gada ‘RM SISTEMAS LTDA’ e, que tenham o salário maior queR$ 1.000 em ordem decrescente de salário.

SELECT GCOLIGADA.NOME COLIGADA, PFUNC.NOME,PFUNC.SALARIO FROM PFUNC, GCOLIGADAWHERE PFUNC.CODCOLIGADA=GCOLIGADA.CODCOLIGADA ANDGCOLIGADA.NOME='RM SISTEMAS LTDA' ANDPFUNC.SALARIO>1000ORDER BY PFUNC.SALARIO DESC

11) Quais os nomes dos bancos de pagamento, utilizados pelos funcio-nários que possuem o cargo de Gerência, sem repetição.

SELECT DISTINCT(GBANCO.NOME) BANCO, PCARGO.NOMECARGO FROM PCARGO, PFUNCAO, PFUNC, GBANCOWHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA ANDPCARGO.CODIGO=PFUNCAO.CARGO ANDPFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA ANDPFUNCAO.CODIGO=PFUNC.CODFUNCAO ANDPFUNC.CODBANCOPAGTO=GBANCO.NUMBANCO ANDPCARGO.NOME='Gerência'

12) Selecione o código da filial, a quantidade de funcionários e a médiasalarial dos funcionários da função 'Suporte Técnico'.

SELECT GFILIAL.CODFILIAL, PFUNCAO.NOME FUNCAO,COUNT(PFUNC.CHAPA) FUNCIONARIOS, AVG(PFUNC.SALARIO) MEDIAFROM GFILIAL, PFUNC, PFUNCAOWHERE PFUNC.CODFILIAL=GFILIAL.CODFILIAL ANDPFUNC.CODCOLIGADA=GFILIAL.CODCOLIGADA ANDPFUNC.CODFUNCAO=PFUNCAO.CODIGO ANDPFUNC.CODCOLIGADA=PFUNCAO.CODCOLIGADAGROUP BY GFILIAL.CODFILIAL, PFUNCAO.NOMEHAVING PFUNCAO.NOME LIKE 'Suporte%'

13) Mostre o nome e a data de admissão de todos os funcionários, quepossuem o cargo 'Gerência' ou que trabalham na seção 'COM - DeptoComercial'.

SELECT PFUNC.NOME, PFUNC.DATAADMISSAO, PCARGO.NOMECARGO, PSECAO.DESCRICAOFROM PFUNC, PCARGO, PSECAO, PFUNCAOWHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA ANDPCARGO.CODIGO=PFUNCAO.CARGO ANDPFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA ANDPFUNCAO.CODIGO=PFUNC.CODFUNCAO ANDPFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGO AND(PCARGO.NOME LIKE 'Gerência%' OR PSECAO.DESCRICAO LIKE'COM%')

26 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 27: RM Bis.pdf

14) Mostre o total gasto em salário pela empresa, por filial, além damédia salarial de cada filial.

SELECT GFILIAL.CODFILIAL FILIAL, SUM(SALARIO) TOTAL,AVG(SALARIO) MEDIA FROM GFILIAL, PFUNCWHERE GFILIAL.CODCOLIGADA=PFUNC.CODCOLIGADA ANDGFILIAL.CODFILIAL=PFUNC.CODFILIALGROUP BY GFILIAL.CODFILIAL

15) Selecione o nome dos funcionários que possuem o salário, superiora todos os funcionários da seção 'COM - Depto Comercial'.

SELECT PFUNC.NOME, PFUNC.SALARIO FROM PFUNCWHERE PFUNC.SALARIO>(SELECT MAX(SALARIO) FROM PFUNC, PSECAO WHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGO ANDPSECAO.DESCRICAO LIKE 'COM%')

16) Encontre todos os nome dos funcionários que comecem com a letra'A', mas que não trabalham na seção 'DST - Suporte Técnico'.

SELECT PFUNC.NOME, PSECAO.DESCRICAO FROM PFUNC,PSECAOWHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGO AND(PFUNC.NOME LIKE 'A%' AND PSECAO.DESCRICAO<>'DST%')

17) Encontre todos os funcionários que possuem o cargo 'Gerência' e,que ganhem mais que os funcionários da filial 'RM Sistemas - FilialRJ'.

SELECT PFUNC.NOME, PFUNC.SALARIO, PCARGO.NOME CARGOFROM PFUNC, PCARGO, PFUNCAOWHERE PFUNC.SALARIO >(SELECT MAX(PFUNC.SALARIO) FROM PFUNC, GFILIALWHERE GFILIAL.NOME='RM SISTEMAS - FILIAL RJ' ANDPFUNC.CODCOLIGADA=GFILIAL.CODCOLIGADA ANDPFUNC.CODFILIAL=GFILIAL.CODFILIAL) ANDPCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA ANDPCARGO.CODIGO=PFUNCAO.CARGO ANDPFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA ANDPFUNCAO.CODIGO=PFUNC.CODFUNCAO ANDPCARGO.NOME='Gerência'

18) Mostre o código da seção, a soma dos salários, o maior salário, onúmero de funcionários e a média salarial, onde o maior salário sejainferior à soma dos salários da seção.

SELECT PSECAO.CODIGO, SUM(PFUNC.SALARIO) SOMA,MAX(SALARIO) MAXIMO, AVG(PFUNC.SALARIO) MEDIA,COUNT(CHAPA) FUNCIONARIOSFROM PSECAO, PFUNCWHERE PSECAO.CODCOLIGADA=PFUNC.CODCOLIGADA ANDPSECAO.CODIGO=PFUNC.CODSECAOGROUP BY PSECAO.CODIGOHAVING MAX(PFUNC.SALARIO)< (SELECT SUM(PFUNC.SALARIO)FROM PFUNC)

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 27

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 28: RM Bis.pdf

19) Informe quais as seções possuem 2 ou mais funcionários, em umadeterminada função, em ordem decrescente de nome das seções.

SELECT PSECAO.DESCRICAO, PFUNCAO.NOME,COUNT(PFUNC.CHAPA) QTD FROM PSECAO, PFUNC, PFUNCAOWHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGO ANDPFUNC.CODCOLIGADA=PFUNCAO.CODCOLIGADA ANDPFUNC.CODFUNCAO=PFUNCAO.CODIGO GROUP BY PSECAO.DESCRICAO, PFUNCAO.NOMEHAVING COUNT(PFUNC.CHAPA)>=2ORDER BY PSECAO.DESCRICAO DESC

20) Desafio: Selecione todas colunas de “nomes/descrições de origem”relacionados com as colunas (foreign keys) da tabela pfunc (descritosno D.E.R).

Exemplos de Aplicação das Sentenças SQL.

Gerador O gerador de relatórios irá acessar diretamente o banco de dados, lendo earmazenando dados nas tabelas do sistema, conforme o relatório exigir. É possível trabalhar com sentenças SQL no Gerador de Relatórios, unindotambém a opção de passagem de parâmetro.

Relatório de Controle de Estoque Mínimo

Neste relatório do Gerador, temos a utilização de sentenças SQL pararetornar o código do produto, descrição, estoque mínimo, estoque atual eperíodo de carência.

28 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 29: RM Bis.pdf

Planilha

Planilha é um arquivo que contém dados do usuário. Pode conter várias pas-tas, para que o usuário possa organizar vários tipos de relatórios num únicoarquivo.A planilha do CORPORE RM possui uma estrutura bastante semelhante àestrutura das planilhas do MS Excel.Pode transformar-se em ferramenta de grande utilidade, conforme necessi-dade. Possui ampla aplicabilidade em cálculos, listagens e controles diver-sos que poderão estar relacionados ou não com suas tarefas diárias no sis-tema.

Planilha Total de Vendas por Cidades

Esta planilha utiliza consultas SQL, para calcular o valor total das vendaspor cidade, ou por filial.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 29

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 30: RM Bis.pdf

Na janela a seguir tem-se a consulta utilizada para retornar o valor para acélula da planilha:

Passagem de Parâmetros

Permite ao usuário informar o valor de uma condição, no momento da exe-cução da consulta, sem que se altere a consulta.

Exemplo:SELECT CHAPA, NOME, DATAADMISSAO FROM PFUNC WHERE CHAPA=: CHAPA

O parâmetro poderá ser utilizado nos relatórios, juntamente com a inserçãoda opção Parâmetros ou Fórmula.

Observação:Este recurso somente será possível através do aplicativo.

30 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 31: RM Bis.pdf

MÓDULMÓDULO 4O 4

OUTER JOINSAs consultas feitas anteriormente são realizados com base em INNERJOINs, essas consultas desprezam, ou melhor, não listam as linhas que nãotenham um dado correspondente na outra tabela, assim se formos relacio-nar a tabela de bancos e funcionários, só virão os funcionários que tenhampelo menos um banco informado e os nomes dos bancos que tenham pelomenos um funcionário associado.As consultas com OUTER JOINS produzem resultados contendo as colunasselecionadas de cada linha em uma tabela, mesmo que esta não tenha rela-ção com um subconjunto de linhas de uma outra tabela. A sintaxe para umaconsulta com OUTER JOIN é:

SELECT lista_colunasFROM <tabela_esquerda> { LEFT | RIGHT | FULL } [OUTER] JOIN<tabela_direita> [ ON <condições>][WHERE <condições>]

Assim, ao utilizarmos a cláusula OUTER JOIN no exemplo acima, ela listaráos bancos e os funcionários independente deles terem relação entre si. Acláusula LEFT, RIGHT e FULL determinará qual tabela será listada na ínte-gra, ou se ambas no caso do FULL.

É necessário especificar o tipo de junção (JOIN) a ser executado. Existemtrês possibilidades:

Um LEFT OUTER JOIN ou LEFT JOIN recupera todas as linhas databela à esquerda da junção e, recupera aquelas linhas da tabelaà direita, que satisfazem às condições especificadas na cláusulaON.Um RIGHT OUTER JOIN ou RIGHT JOIN recupera todas as linhasda tabela à direita da junção e, recupera aquelas linhas da tabelaà esquerda, que satisfazem às condições especificadas na cláusu-la ON.Um FULL OUTER JOIN ou FULL JOIN recupera todas as linhas deambas as tabelas, independentemente, das condições especifica-das na cláusula ON.

Utilizamos consultas com OUTER JOINS quando queremos comparar todosos dados de uma tabela, com o subconjunto dos dados relacionados naoutra tabela.

Exemplos:SELECT P.NOME, B.NOME FROM PFUNC P LEFT OUTER JOIN GBANCO B ON P.CODBANCOPAGTO=B.NUMBANCOLista todos os nomes dos funcionários e os nomes dos bancosde depósito de pagamento, somente para aqueles que possuemcontas de pagamento cadastradas.

Nos SGBDs do ORACLE e SQL SERVER, temos outras maneirasde especificar um OUTER JOIN na cláusula WHERE, que poderáutilizar o (+) e o (*), respectivamente. Vejamos como ficariam oexemplo 1 desta nova maneira:

Em Oracle:SELECT P.NOME, B.NOME FROM PFUNC, GBANCO WHERE P.CODBANCOPAGTO (+)= B.NUMBANCO

Em SQL ServerSELECT P.NOME, B.NOME FROM PFUNC, GBANCO WHERE P.CODBANCOPAGTO *= B.NUMBANCO

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 31

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 32: RM Bis.pdf

32

Exercícios

Sentenças RM Labore:

1) Listar os nomes, as chapas e os nomes dos bancos de FGTS de todosfuncionários da coligada 1, mesmo para aqueles que não tenham aconta de FGTS cadastrada, mostrando o total por filial.

SELECT PFUNC.NOME, PFUNC.CHAPA, GBANCO.NOME,PFUNC.CODFILIAL, SUM(SALARIO*0.08)FROM PFUNC LEFT OUTER JOIN GBANCO ONPFUNC.CODBANCOFGTS=GBANCO.NUMBANCOWHERE PFUNC.CODCOLIGADA=1GROUP BY PFUNC.NOME, PFUNC.CHAPA, GBANCO.NOME,PFUNC.CODFILIAL

2) Listar os nomes dos funcionários e os nomes de todos os sindicatos,independente deles possuírem funcionários filiados ou não.

SELECT PFUNC.NOME, PSINDIC.NOMEFROM PFUNC RIGHT OUTER JOIN PSINDIC ONPFUNC.CODSINDICATO=PSINDIC.CODIGO

3) Liste os nomes, as chapas, os salários e a descrição da situação dosfuncionários. Mesmo que exista uma situação que não estejaassociada a um funcionário.

SELECT PFUNC.NOME, PFUNC.CHAPA, PFUNC.SALARIO,PCODSITUACAO.DESCRICAO SITUACAOFROM PCODSITUACAO LEFT OUTER JOIN PFUNCON PFUNC.CODSITUACAO=PCODSITUACAO.CODCLIENTE

4) Liste os nomes de todas as funções, e naquelas que possuírem fun-cionários, mostre o total de salário gasto com cada uma, em ordemsalarial do maior para o menor.

SELECT PFUNC.NOME, PFUNCAO.NOME FUNCAO,SUM(SALARIO)TOTSALARIO FROM PFUNCAO LEFT OUTER JOIN PFUNC ONPFUNC.CODFUNCAO=PFUNCAO.CODIGO GROUP BY PFUNC.NOME, PFUNCAO.NOME ORDER BY SUM(SALARIO) DESC

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 33: RM Bis.pdf

MÓDULMÓDULO 5O 5

Exercícios Gerais

Teóricos

1) O que é um SGDB?

2) Defina tabela.

3) Defina chave primária.

4) Defina chave estrangeira.

5) O que é banco de dados cliente/servidor?

6) Qual das chaves podem ser repetidas, chave primária ou estrangei-ra? Porque?

Sentenças RM Fluxus

1) Criar uma sentença que retorne o saldo instantâneo de uma contacaixa, que deverá ser fornecida pelo usuário no momento daexecução da sentença. A sentença ainda deverá listar os campos:código da conta caixa, descrição e saldo instantâneo.

SELECT FCXA.CODCXA, FCXA.DESCRICAO,FCXA.SALDOINSTANTANEO FROM FCXAWHERE FCXA.CODCXA = :ContaCaixa

2) Selecionar o código do cliente, o nome fantasia, a data devencimento do lançamento e valor original. Use parâmetros parasolicitar a digitação da data de vencimento a ser listada.

SELECT FLAN.CODCFO, FCFO.NOMEFANTASIA,FLAN.DATAVENCIMENTO, FLAN.VALORORIGINALFROM FLAN, FCFOWHERE FLAN.CODCOLIGADA=FCFO.CODCOLIGADA ANDFLAN.CODCFO=FCFO.CODCFO ANDFLAN.DATAVENCIMENTO=:VENCIMENTO

3) Criar uma sentença que retorne o somatório do saldo instantâneo esaldo não compensado, de uma determinada conta caixa. E listetambém o código desta conta e sua descrição. Utilize parâmetro parasolicitar a informação do código da conta caixa a ser listada. Dê umnome para a coluna que apresentará o somatório.

SELECT FCXA.CODCXA, FCXA.DESCRICAO,(FCXA.SALDOINSTANTANEO+FCXA.SALDONAOCOMPENSADO)SALDO_PREVISTOFROM FCXAWHERE FCXA.CODCXA=:CODIGO

4) Relatório de pagamentos a receber. Contendo: número dodocumento, data de vencimento e valor original, dos lançamentoscom vencimento partir de 01/01/2005.

SELECT FLAN.NUMERODOCUMENTO DOCUMENTO,FLAN.DATAVENCIMENTO, FLAN.VALORORIGINALTOTAL_A_RECEBERFROM FLANWHERE CODCOLIGADA=1 AND PAGREC='1'ANDFLAN.DATAVENCIMENTO>'01/01/2005'

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 33

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 34: RM Bis.pdf

5) Listagens de cliente e fornecedor que retorne o campo código, nome,CNPJ, rua, número e telefone. Ordenado pelo código do cliente efornecedor.

SELECT FCFO.CODCFO, FCFO.NOME, FCFO.CGCCFO, FCFO.RUA,FCFO.NUMERO, FCFO.TELEFONE FROM FCFOORDER BY FCFO.CODCFO

6) Retornar o nome do cliente ou fornecedor, estado e telefone. Utilize orecurso de parâmetros para solicitar a digitação do estado a serlistado.

SELECT FCFO.NOME, FCFO.CODETD, FCFO.TELEFONEFROM FCFO WHERE FCFO.CODETD =:ESTADO

7) Listar o nome do cliente, data de vencimento, histórico delançamento e valor original do lançamento. Ordenando pelo nome docliente, data de vencimento e valor.

Observação:Somente dos lançamentos a receber que estejam baixados.

SELECT FCFO.NOME CLIENTE, FLAN.DATAVENCIMENTO,FLAN.VALORORIGINAL, FLAN.HISTORICO FROM FCFO, FLANWHERE FLAN.CODCOLCFO = FCFO.CODCOLIGADA ANDFLAN.CODCFO = FCFO.CODCFO ANDFLAN.PAGREC=1 ANDFLAN.STATUSLAN=1 ANDFLAN.CODCOLIGADA=1 AND FLAN.CODFILIAL=1ORDER BY FCFO.NOME, FLAN.DATAVENCIMENTO,FLAN.VALORORIGINAL

8) Listar o nome do fornecedor, data de vencimento, histórico delançamento e valor original. Ordenando pelo nome do fornecedor,data de vencimento e valor.

Observação:Somente dos lançamentos a pagar que estejam baixados.

SELECT FCFO.NOME FORNECEDOR, FLAN.DATAVENCIMENTO,FLAN.VALORORIGINAL, FLAN.HISTORICOFROM FCFO, FLANWHERE FLAN.CODCOLCFO = FCFO.CODCOLIGADA ANDFLAN.CODCFO = FCFO.CODCFO ANDFLAN.PAGREC=2 AND FLAN.STATUSLAN=1 AND FLAN.CODCOLIGADA=1 AND FLAN.CODFILIAL=1ORDER BY FCFO.NOME, FLAN.DATAVENCIMENTO,FLAN.VALORORIGINAL

34 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 35: RM Bis.pdf

Sentenças RM Saldus

1) Selecionar o código do lote, o número do documento, a conta decrédito e débito, a data do lançamento e data da liberação do lote.

Observação:Não deverão ser listados os lançamentos do lote “0” (zero).

SELECT CLANCA.CODLOTE, CLANCA.DOCUMENTO,CLANCA.CREDITO, CLANCA.DEBITO, CLANCA.DATA,CLANCA.DATALIBERACAOFROM CLANCAWHERE CLANCA.CODLOTE<>0ORDER BY CLANCA.CODLOTE

2) Retornar o código da conta contábil, código reduzido da contacontábil e descrição. Somente das contas analíticas, ordenadas pelocódigo Contábil.

SELECT CODCONTA, REDUZIDO, DESCRICAOFROM CCONTAWHERE ANALITICA='1' ORDER BY CODCONTA

3) Retornar o código da filial, número do documento, data dolançamento, conta débito, conta crédito e valor. Ordenando pela datado lançamento.

SELECT CLANCA.CODFILIAL, CLANCA.DOCUMENTO,CLANCA.DATA, CLANCA.DEBITO, CLANCA.CREDITO,CLANCA.VALORFROM CLANCAWHERE CLANCA.CODFILIAL=1ORDER BY CLANCA.DATA

Sentenças RM Labore

1) Selecione o nome dos bancos.

SELECT NOME FROM GBANCO

2) Selecione o código e a descrição de todas as situações.

SELECT CODCLIENTE SITUACAO, DESCRICAO FROMPCODSITUACAO

3) Selecione o nome, chapa e sexo dos dependentes dos funcionários.

SELECT PFDEPEND.CHAPA FUNCIONARIO, PFDEPEND.NOMEDEPENDENTE, PFDEPEND.SEXOFROM PFDEPEND

4) Escreva a sentença SQL que retorna os dados pedidos:

a) Listar o nome das funções que começam com a letra A.

SELECT PFUNCAO.NOMEFROM PFUNCAOWHERE PFUNCAO.NOME LIKE 'A%'

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 35

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 36: RM Bis.pdf

b) Listar o Nome do funcionário que possui o menor salário e o nomedo funcionário que possui o maior salário.

SELECT PFUNC.NOME, PFUNC.SALARIO FROM PFUNCWHERE PFUNC.SALARIO=(SELECT MAX(PFUNC.SALARIO)FROM PFUNC) UNIONSELECT PFUNC.NOME, PFUNC.SALARIO FROM PFUNCWHERE PFUNC.SALARIO=(SELECT MIN(PFUNC.SALARIO)FROM PFUNC)

c) Listar o nome e seção do funcionário com o maior salário.

SELECT PFUNC.NOME, PFUNC.CODSECAO, PFUNC.SALARIOFROM PFUNCWHERE SALARIO=(SELECT MAX(PFUNC.SALARIO) FROMPFUNC)

d) Listar o nome e seção do funcionário com o menor salário.

SELECT PFUNC.NOME, PFUNC.CODSECAO, PFUNC.SALARIOFROM PFUNCWHERE SALARIO=(SELECT MIN(PFUNC.SALARIO) FROMPFUNC)

e) Listar a filial 1 ou 2 que possui média salarial superior a R$ 500.

SELECT PFUNC.CODFILIAL, AVG(SALARIO) MEDIA FROMPFUNCWHERE PFUNC.CODFILIAL=1 OR PFUNC.CODFILIAL=2GROUP BY PFUNC.CODFILIALHAVING AVG(PFUNC.SALARIO)>500

5) Marque V ou F nas questões abaixo:

a) SELECT * FROM PFUNC( f )Esta consulta mostra somente as chaves primárias da tabela

PFUNC, exclusivamente pelo uso do (*) asterisco.( v )Esta consulta traz todos os campos da tabela pfunc exclusiva-

mente pelo uso do (*) asterisco.( f )Esta consulta está completamente errada, não se pode usar

(*) asterisco sem a cláusula HAVING.

b) SELECT CODSECAOFROM PFUNCWHERE CODCOLIGADA = 1 AND SALARIO > 100GROUP BY CODSECAOHAVING MAX(SALARIO) < 1000 AND MIN(SALARIO) >=200ORDER BY MIN(SALARIO)

( f ) Esta consulta está errada, porque não se pode ter a CláusulaHAVING antes do ORDER BY.

( f ) Esta consulta está errada, porque não se pode fazer mais deuma comparação na cláusula HAVING.

( f ) Esta consulta está errada, pois não é possível utilizar namesma sentença a cláusula WHERE e HAVING.

( v )Esta consulta está correta, o Having pede um GROUP BY, omesmo está trazendo o campo certo de agrupamento.

36 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 37: RM Bis.pdf

6) A consulta abaixo está correta? Se não, por favor, conserte-a noespaço abaixo e indique onde se encontram os erros.

SELECT AVG(SALARIO), NOMEFROM PFUNC, GFILIALGROUP BY NOMEHAVING AVG(SALARIO)>500

SELECT AVG(PFUNC.SALARIO), GFILIAL.NOMEFROM PFUNC, GFILIALWHERE GFILIAL.CODCOLIGADA=PFUNC.CODCOLIGADA ANDGFILIAL.CODFILIAL=PFUNC.CODFILIALGROUP BY GFILIAL.NOMEHAVING AVG(SALARIO)>500

7) A consulta abaixo está correta? Se não, por favor, conserte-a noespaço abaixo e indique onde se encontram o(s) erros.

SELECT COUNT(P.CHAPA), F.NOMEFROM PFUNC P, PFUNCAO FWHERE P.CODFUNCAO=F.CODIGO AND P.CODCOLIGADA=F.CODCOLIGADAGROUP BY F.NOMEHAVING CHAPA LIKE '0001%'ORDER BY F.NOME

SELECT COUNT(P.CHAPA), F.NOMEFROM PFUNC P, PFUNCAO FWHERE P.CODFUNCAO=F.CODIGO AND P.CODCOLIGADA=F.CODCOLIGADAGROUP BY F.NOMEORDER BY F.NOME

8) Selecione os códigos dos cargos e a chapa dos funcionários da coli-gada RM Sistemas.

SELECT PCARGO.CODIGO CARGO, PFUNC.CHAPA FUNCIONARIOFROM PCARGO, PFUNC, PFUNCAOWHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA ANDPCARGO.CODIGO=PFUNCAO.CARGO ANDPFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA ANDPFUNCAO.CODIGO=PFUNC.CODFUNCAO

9) Quais são as funcionárias que têm como descrição da situação'Licença Mater'.

SELECT PFUNC.NOME, PCODSITUACAO.DESCRICAO FROMPFUNC, PCODSITUACAOWHERE PFUNC.CODSITUACAO=PCODSITUACAO.CODCLIENTEANDPCODSITUACAO.DESCRICAO LIKE 'Licença Mater%'

10) Quais são os nomes das funções da seção 'COM - Depto Comercial'?

SELECT PFUNCAO.NOME, PSECAO.DESCRICAO FROM PFUNCAO,PSECAO, PFUNCWHERE PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA ANDPFUNCAO.CODIGO=PFUNC.CODFUNCAO ANDPFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA ANDPFUNC.CODSECAO=PSECAO.CODIGO ANDPSECAO.DESCRICAO LIKE 'COM%'

11) Selecione todos os nomes dos funcionários, exceto os que têm onome começando com a letra A.

SELECT PFUNC.NOME FROM PFUNCWHERE PFUNC.NOME NOT LIKE 'A%'

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 37

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 38: RM Bis.pdf

Sentenças RM Nucleus

1) Selecionar os clientes que não possuem movimentação, a partir deuma data fornecida pelo usuário. Utilize parâmetros para solicitar adigitação das datas. Os campos a serem listados são: Código docliente, nome fantasia do cliente, rua, número, complemento, bairro,cidade, cep e telefone.

SELECT DISTINCT CODCFO, NOME CLIENTE, RUA, NUMERO,COMPLEMENTO, BAIRRO, CIDADE, CEP, TELEFONE FROM FCFO(nolock)WHERE CODCFO NOT IN (SELECT CODCFO FROM TMOV WHERE CODCFO IS NOT NULLANDDATAMOVIMENTO>=:DATAINI_D AND DATAMOVIMENTO<=:DATAFIM_D)

2) Criar uma sentença para retornar a quantidade de produtos por localde estoque. Lembrando que o local de estoque está associado a umafilial. Apresente os resultados por ordem de filial.

SELECT F.NOMEFANTASIA FILIAL, P.CODIGOPRD CODIGO,P.NOMEFANTASIA PRODUTO, SUM(L.SALDOFISICO2 )SALDO_FISICOFROM TPRDLOC L, TPRD P, GFILIAL F WHERE L.CODCOLIGADA=1 ANDL.CODCOLIGADA=P.CODCOLIGADA AND L.IDPRD=P.IDPRD ANDF.CODCOLIGADA=L.CODCOLIGADA ANDF.CODFILIAL=L.CODFILIALGROUP BY F.NOMEFANTASIA, P.CODIGOPRD, P.NOMEFANTASIAORDER BY F.NOMEFANTASIA

3) Criar uma sentença que retorne os dados do Contrato do clienteC00001. Os dados a serem listados são: Código do contrato, nomefantasia do cliente, valor do contrato, data de início e data de fim decontrato. Utilize o recurso de alias (apelido) para nomear os campos(colunas) a serem exibidos.

SELECT CODIGOCONTRATO CONTRATO, CF.NOMEFANTASIACLIENTE,VALORCONTRATO VALOR, T.DESCRICAO TIPO, DATAINICIOINICIO, DATAFIM FIMFROM TCNT C, TTCN T, FCFO CF WHERE C.CODCOLIGADA=1AND C.CODCOLIGADA=T.CODCOLIGADA ANDT.CODCOLIGADA=CF.CODCOLIGADA ANDC.CODTCN=T.CODTCN AND C.CODCFO=CF.CODCFOAND CF.CODCFO='C00001'ORDER BY CODIGOCONTRATO

4) Selecione os itens do movimento, a partir de uma data fornecida pelousuário, apresentando os seguintes dados: código do produto, nomefantasia do produto, quantidade, unidade, preço unitário e data deemissão do movimento. Utilize o recurso de parâmetros, parasolicitar a digitação da data de emissão dos itens do movimento.

SELECT P.CODIGOPRD CODIGO, P.NOMEFANTASIA PRODUTO,I.QUANTIDADE, I.CODUND UN, I.PRECOUNITARIO PRECO,I.DATAEMISSAOFROM TITMMOV I, TPRD P WHERE I.CODCOLIGADA=1 ANDI.CODCOLIGADA=P.CODCOLIGADA AND I.IDPRD=P.IDPRD ANDI.DATAEMISSAO>= :DATA_INICIAL AND I.DATAEMISSAO<= :DATA_FINAL

38 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 39: RM Bis.pdf

MÓDULMÓDULO 6O 6

ConceitoBI (Business Intelligence)

Ferramenta de uso gerencial para extração de informações de umúnico banco de dados.Sua criação será realizada no RM BIS, utilizando sentenças SQL,e a sua consulta pode ser em todos os módulos do CORPORE RM(recursos humanos, financeiro, contábil, produção, etc).A sua visualização será possível através dos cubos de decisões(OLAP - Online Analytical Processing - Processamento AnalíticoOnline).O sistema tem recursos visuais para análise de informaçõesatravés de gráficos, planilhas e relatórios analíticos.

Iniciando o RM BIS

Clique no botão "Iniciar" da barra de tarefas do Windows, e em seguidaaponte para:

Programas;RM Sistemas;RM Bis.

Selecione clicando com o mouse.

Para acessarmos o sistema utilizaremos o usuário mestre, que é supervisor,portanto tem maiores privilégios.

Usuário: mestreSenha: rm sistemas

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 39

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 40: RM Bis.pdf

Janela de Visão do Aplicativo

Menu Cadastros

Neste menu constam todas as tabelas globais, comuns aos aplicativos doCORPORE RM, e o cadastro de Tipos de Cubo que é exclusivo do RM BIS.

40 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 41: RM Bis.pdf

Cadastros / Tipos de Cubos

Para armazenamento dos cubos criados e direcioná-los ao sistema cor-respondente. Existem alguns tipos de cubos que são previamentecadastrados pela RM Sistemas, além destes, o usuário poderá cadastrarnovos tipos, a fim de obter uma melhor classificação para os mesmos.

Exemplo:Prefixo: RHDescrição: Cubos de Recursos Humanos.O prefixo identificará os dados que constam no cubo.

Observação:Estes tipos criados estarão visíveis no menu RELATÓRIOS /CUBOS (EIS). Sendo que os tipos criados pelo usuário estarãodisponíveis no submenu: RELATÓRIOS / CUBOS (EIS) / CUBOSDO USUÁRIO.

Relatórios / Cubos (EIS)

Cubos (EIS) - Entrerprise Information System - Sistema de informaçãoempresarial.

Neste menu, serão visualizados todos os cubos criados e será permitidocriar novos cubos. Utilizando para isto, o "Assistente de Criação de Cubos".

Os itens disponíveis neste menu também estão disponíveis através da barrade ferramentas.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 41

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 42: RM Bis.pdf

Observações:Cubos do usuárioO usuário poderá criar um tipo de cubo personalizado.Cubos customizadosCriados pela RM Sistema, através de customização, para aatender particularidades de uma determinada empresa.

Criando Cubos

Roteiro:

1) Deve-se criar o tipo de cubo em: CADASTROS / TIPOS DE CUBO;Como exemplo, criaremos o tipo “Cubos Treinamentos”.

Observação:Após cadastrar o tipo de cubo será necessário definir permissãode acesso ao menu, no cadastro de segurança, pasta perfis. Eefetuar logout/login.

2) Depois de criado, o cubo poderá ser visualizado no menu: RELATÓRIOS /CUBOS (EIS) / CUBOS DO USUÁRIO.

42 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 43: RM Bis.pdf

3) Acessar o Assistente de Criação de Cubos em: RELATÓRIOS / CUBOS(EIS) / ASSISTENTE DE CRIAÇÃO DE CUBOS.Será apresentada a janela do assistente. Clique em “Avançar”.

4) No editor de sentenças SQL, digite a sentença desejada ou importe umasentença já criada anteriormente. No nosso exemplo utilizaremos umasentença simples digitada diretamente nesta janela. Clique no botão“Avançar”.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 43

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 44: RM Bis.pdf

5) Depois de selecionados os campos, será necessário determinar onde osmesmos serão visualizados no cubo. Selecione o campo e o arraste para:Área de consulta, linhas de consulta, colunas de consulta ou campos dedados. Clique em “Avançar”.

Após configuração, o cubo será visualizado no relatório da seguinte forma:

Área de consulta

Campos de dados

Linhas de consulta

44 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 45: RM Bis.pdf

6) O próximo passo é configurar os campos do Cubo, conforme ilustra afigura a seguir:

Nesta etapa configure o texto a ser apresentado em cada dimensão, e nocaso das dimensões das áreas de dados, configure a máscara dos valores aserem apresentados.

TextoInforme uma descrição para o campo selecionado.

Totalizar ValoresMarque esta opção para que esse campo seja totalizado.

PosiçãoInforma a posição do campo que foi especificada na etapa 2 - Organizaçãodas Dimensões.

MáscaraSelecione uma máscara para o campo selecionado. Só estará disponívelpara "Campos de Dados", isto é, para campos que foram organizados naárea de dados.

Será possível selecionar os seguintes tipos de máscaras:

Inteiros (#.##0) Visualiza o valor sem casas decimais e comseparador de milhar;

Percentual (0.00%) Visualiza o percentual correspondente ao valor total.

Reais (#.##0,00) Visualiza o valor com N casas decimais e separadorde milhar;

N° casas decimais Permite determinar a quantidade de casas decimais.

Observação:A determinação do número de casas decimais só terá efeitosobre campos da base de dados que suportarem a mesmaquantidade de casas decimais escolhida. Com isso se o usuárioescolher uma quantidade de casas decimais acima daquantidade suportada pelo campo, esta será preenchida com oalgarismo zero.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 45

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 46: RM Bis.pdf

Exemplo:O usuário deseja montar um cubo para visualizar o nome e osalário com três casas decimais para cada funcionário daempresa. O campo salário na base de dados foi criado com duascasas decimais. Serão exibidos dados com três casas decimais,porém a última casa será preenchida com zero.

Para testar, crie um cubo com a sentença, abaixo:SELECT PFUNC.CHAPA, PFUNC.CODPESSOA, PFUNC.SALARIOFROM PFUNC

Ordenar de acordo com o campoDefine que a ordenação será baseada nos valores do campo escolhido.

AscendentePermite selecionar se a ordenação do campo será feita de forma ascendenteou descendente. Se esta opção estiver desmarcada, a ordenação do camposerá descendente.

Observação:Ao preencher o campo "Ordenar de acordo com o campo" paradiversos campos, principalmente ordenando de formaascendente e outros de forma descendente, a ordenação seráfeita respeitando-se a hierarquia das dimensões.

7) Nesta etapa será permitido definir o nome do cubo, o tipo o qual estarelacionado e se o mesmo será gravado no próprio banco de dados ou emarquivo.

No caso da gravação em arquivo o caminho default (padrão) éC:\CORPORERM\CUBOS. Mas, será possível definir um outro caminhocaso seja necessário. Após as definições necessárias clique no botão"Avançar".

46 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 47: RM Bis.pdf

8) Será apresentada a janela de finalização do assistente. Clique no botão“Finalizar”.

O cubo criado estará disponível para consulta em: RELATÓRIOS / CUBOS(EIS) / CUBOS DO USUÁRIO / CUBOS DE TREINAMENTOS.

Janela de Visão de Cubos

Ícones da Barra de Ferramentas:

Abrir Cubo;Permite abrir um cubo já existente.

Excluir Cubo;

Alterar Informações do Cubo;Tais como: senha, STORED PROCEDURE, tipo de cubo, sistema, etc.

Alterar Informações do Cubo (Assistente de Edição de Cubo);Permite acessar o assistente para alterar algumas informações docubo, tais como: sentença SQL, áreas e linhas de consulta, etc.

Associar Variáveis;Permite definir as variáveis que poderão ser utilizadas emdeterminados cubos, podendo variar de usuário para usuário.

Criar Cópia do Cubo;

Importar Cubo.

Os demais ícones são semelhantes aos demais sistemas do CORPORE RM.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 47

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 48: RM Bis.pdf

Editando Cubos

Pasta Cubo de Decisão

Nesta pasta, será feita a análise dos dados registrados no banco de dadosCORPORE RM. A função dos Cubos de decisão é trazer informações atuali-zadas e confiáveis para tomada de decisões estratégicas em uma empresa,onde o usuário poderá dimensionar o cubo da maneira mais adequada à suaconsulta.

Ícones do Cubo

Atualizar Informações da base de dados;

Configurar Impressão;

Será apresentada uma janela onde será possível alterar a fonte do relatórioe o título do cabeçalho.

Visualizar / Imprimir Cubo;

Exportar para o MS - Excel;

48 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 49: RM Bis.pdf

Exportar para Arquivo;Para exportar o cubo para o formato CSV (Valores Separados por Vírgula),informe um nome para o arquivo e acrescente a extensão .CSV.

Observação:Arquivos com a extensão.csv podem ser importados emplanilhas eletrônicas ou gerenciadores de bancos de dados.

Exportar Cubo;Permite exportar o cubo para o formato off-line (.cub). Informe umnome para o arquivo e acrescente a extensão .CUB.

Visualizar Sentença SQL;

Observação:A sentença SQL não poderá ser alterada, somente visualizada.

Visualizar Filtros sobre as Dimensões;

Ordenação das Dimensões.

.

Áreas de Divisão do Cubo

Área de DimensõesRegião que contém as dimensões (campos ou colunas da tabela) disponí-veis para a organização dos dados.

Área de ConsultaRegião que contém as dimensões utilizadas na análise dos dados e osdados propriamente ditos. Esta área se divide em 4 espaços distintos:

Linhas de ConsultaApresenta as dimensões que formam a Área de Registros.

Colunas de Consulta Apresenta as dimensões que formam a Área de Dados.

Área de RegistrosÁrea de Dados

Colunas de Consulta

Linhas de Consulta

Área de Dimensões

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 49

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 50: RM Bis.pdf

Área de RegistrosApresenta os dados obtidos através da consulta ao Banco de Dadosdo CORPORE RM, organizados de acordo com as Linhas deConsulta.

Área de DadosApresenta os dados obtidos através da consulta ao Banco de Dadosdo CORPORE RM, organizados de acordo com a Área de Registros ecom as Colunas de Consulta.

Observação:Uma dimensão pode conter um ou mais campos da base dedados CORPORE RM, ou pode ser parte de um desses campos.

Os campos foram distribuídos de acordo com a Organização da dimensões.

50 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 51: RM Bis.pdf

Alterando a Dimensão da Análise dos Dados

A disposição das dimensões influencia a análise dos dados. Alterando umadimensão de lugar, você estará alterando a forma de visualizar os dados.Cada dimensão pode conter um ou mais registros, e a seleção destes regis-tros, influencia também a análise dos dados.

Exemplo:Baseado na figura anterior, caso arraste a dimensão Centro deCustos para a Linha de Consulta, a análise ficará mais detalha-da. Anteriormente, a análise era baseada em todos os pagamen-tos/recebimentos de cada filial, pertencente à coligada RMSistemas. Agora a análise está baseada em todos os pagamen-tos/recebimentos de cada Centro de Custo, de cada filial perten-cente à coligada RM Sistemas.

Para Acrescentar uma Dimensão na Área de Consulta

Na área de Dimensões, posicione o mouse sobre a dimensão quedeseja acrescentar à área de Consulta. O ponteiro do mouse se

. apresentará conforme figura ao lado.

Mantendo o botão esquerdo do mouse pressionado, arraste a.... ...dimensão para a posição desejada na Linha/Coluna da área de...............Consulta.

Aparecerá o indicador (veja a figura ao lado), informando a posi-ção na qual a dimensão será acrescentada.

Para Remover uma Dimensão da Área de Consulta

Na área de Consulta, posicione o mouse sobre a dimensão quedeseja remover e, arraste-a para uma posição na área de Dimen-sões.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 51

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 52: RM Bis.pdf

Para Alterar a posição de uma Dimensão da Área de Consulta

Na área de Consulta, posicione o mouse sobre a dimensão quedeseja mover e arraste-a para outra posição desta área. Umadimensão pode ser movida entre as posições da linha/coluna, oupode ser movida de uma linha para uma coluna (ou vice-versa).

Para Selecionar/Não-selecionar Registros de uma Dimensão

Clique na Seta para Baixo, ao lado direito do nome da dimensão,uma lista de registros pertencentes a essa dimensão seráapresentada.

Clique no Quadrado do registro que você deseja selecionar ouNão-Selecionar.

Clique novamente na Seta para Baixo para confirmar a seleção.

Gráfico

Nesta pasta, será visualizado o gráfico referente aos valores selecionados napasta Cubo de Decisão.

Botões disponíveis

Salvar Gráfico em Bitmap;

Imprimir Gráfico;

Configurar Gráfico.Este ícone permite definir o tipo degráfico: barras, pizza, linhas, área, etc.Bem como a dimensão: 3D ou 2D, olocal onde será exibida a legenda e adigitação do título do gráfico.

52 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 53: RM Bis.pdf

Para aumentar/diminuir a escala do gráfico, selecione as faixas quedefinirão o gráfico.

Exemplo:Para aumentar a escala de uma faixa, selecione a faixa. Todas asoutras faixas desaparecerão da área visualizada e, apenas a faixaselecionada será visualizada. Para voltar novamente a visualizartodas as faixas, selecione toda a área do gráfico a ser visualiza-da.

Exercício

Criar um cubo para discriminar as despesas com Treinamentos.Utilize a seguinte sentença:

SELECT GCOLIGADA.NOME AS COLIGADA,GFILIAL.NOMEFANTASIA AS FILIAL,PSECAO.DESCRICAO AS SECAO,DATEPART(MONTH,DATAINIPER) AS MES, DATEPART(YEAR,DATAINIPER) AS ANO,NOMEDESPESA, VALOR

FROM PFUNC (NOLOCK), VDESPESA (NOLOCK), VDESPESAS (NOLOCK),GCOLIGADA (NOLOCK), GFILIAL (NOLOCK), PSECAO (NOLOCK)

WHERE (GCOLIGADA.CODCOLIGADA = PFUNC.CODCOLIGADA) AND(GFILIAL.CODCOLIGADA = PFUNC.CODCOLIGADA) AND(PSECAO.CODCOLIGADA = GFILIAL.CODCOLIGADA) AND(PSECAO.CODIGO = PFUNC.CODSECAO) AND(PFUNC.CODSECAO = PSECAO.CODIGO) AND (GFILIAL.CODFILIAL = PSECAO.CODFILIAL) AND (PFUNC.CODPESSOA = VDESPESA.CODPESSOA) AND(VDESPESA.CODCOLIGADA = VDESPESAS.CODCOLIGADA) AND(VDESPESA.CODDESPESA = VDESPESAS.CODDESPESA)

Defina Para a Área de Consulta os campos: Coligada, ano, seçãoe filial.

Para a Linha de Consulta: Mês e Nomedespesa

Para Campos de Dados: Valor.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 53

ANOTAÇÕES

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 54: RM Bis.pdf

ANEXANEXOO

CORPORE RM RCORPORE RM Recursos Humanosecursos Humanos

RM Labore (Folha de Pagamento)

Objetivo:Capacitação dos profissionais ligados às atividades do Departamento Pessoal (movimentaçãoda folha de pagamento)

Conteúdo:Parâmetros de Cálculo do SistemaMovimentação Mensal (Grupo de Eventos, Adiantamento Salarial, Processamento da Folha Mensal,Vale Transporte, Descontos e Adiantamentos, Entradas de Dados, Liberação de Competência).Diferença Salarial, Recálculo, Bloqueio do Recálculo e Licença Maternidade.Alterações Cadastrais, Alteração Global de Salários, Férias e Escala de Férias.Importação de Dados, Rescisão, Cancelando uma Rescisão, Rescisão Complementar.Empréstimo, Pensão Alimentícia e 13º Salário.Parâmetros do 13º Salário. (Lançamento do 13º Salário)Parâmetros de Rescisão (Cálculo da Rescisão, Rescisão Coletiva, e Rescisão Complementar)Parâmetros de Férias (Cálculo de Férias, Cálculo da Diferença de Férias, e Férias Coletivas).Emissão de Relatórios Oficiais (SEFIP, Geração do FGTS, Guias de INSS, Geração de CAGED),Geração do Histórico de Provisões, Visualização do Histórico de Provisões.

RM Vitae (Gestão Recursos Humanos)

Objetivo:Capacitação dos profissionais ligados às atividades do Departamento de Recursos Humanosnos processos do sistema.

Conteúdo:Montagem do Currículo;Cadastro de Pessoas;Definição de Características Pessoais (Habilidades);Cadastros de Cargos e Funções;Plano de Carreira e Organograma;Tabelas Salariais;Recrutamento e Seleção de Pessoal;Controle de Treinamentos;Avaliação de Desempenho;PPRA - Programa de Proteção a Riscos Ambientais;EPIs - Equipamento de Proteção Individual;Acidente de Trabalho;Proteção Contra Incêndio;PCMSO - Programa de Controle Médico e Segurança Ocupacional.

RM Vitae (Gestão Recursos Humanos)

Objetivo:Capacitação dos profissionais ligados às atividades do Departamento de Recursos Humanosnos processos do sistema.

Conteúdo:Montagem do Currículo;Cadastro de Pessoas;Definição de Características Pessoais (Habilidades);Cadastros de Cargos e Funções;Plano de Carreira e Organograma;Tabelas Salariais;Recrutamento e Seleção de Pessoal;Controle de Treinamentos;Avaliação de Desempenho;PPRA - Programa de Proteção a Riscos Ambientais;EPIs - Equipamento de Proteção Individual;Acidente de Trabalho;Proteção Contra Incêndio;PCMSO - Programa de Controle Médico e Segurança Ocupacional.

54 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 55: RM Bis.pdf

CORPORE RM RCORPORE RM Recursos Humanosecursos Humanos

RM Chronus (Automação de Ponto)

Objetivo:Proporcionar rapidez e segurança na apuração do ponto das empresas.

Conteúdo:Cadastro de calendários, feriados e horários.Realiza os cálculos referentes às horas dos funcionários Configuração do layout de importação das batidas e Funções de relógio de Ponto.Parametrização (horário, pagamento de horas trabalhadas, adicional noturno, nona hora, horasextras, controle de carência de atraso, extra autorizado, feriados, compensação de atrasos, faltas eBanco de Horas).Tabela de horários com cadastramento de jornadas, intervalos de refeição e descanso.Tratamento de horários rígidos com ou sem tolerâncias, horários flexíveis e semi-flexíveis, comcompensação de faltas e atrasos.Histórico dos funcionários, como ficha financeira, banco de horas e ficha de abonos.Controle Visitantes, Crachás Provisórios e Refeitório.

Contabilização do RM Labore (RM Labore x RM Saldus)

Objetivo:Capacitação do usuário nas integrações da Folha de pagamento com a contabilidade.

Conteúdo:Paramêtros do RM SaldusHistórico Padrão Plano de Contas ContábeisPlano de Contas GerenciaisEncargos ContábeisAgrupamento de Contas ContábeisAgrupamento de Contas GerenciaisHistórico ProvisõesHistórico EncargosLançamentos ContábeisContabilização por FuncionárioContabilização por SeçãoContabilização por Centro de Custo

CORPORE RM AdministrativoCORPORE RM Administrativo

RM Nucleus (Faturamento, Estoque e Compras)

Objetivo:Capacitação do usuário nas movimentações de Compras, Estoque e Faturamento.

Conteúdo:Processo Completo de Compras / Entradas (Nota Fiscal de Entrada, Etc.)Processo Completo de Vendas / Saídas (Pedido do Cliente, Nota Fiscal de Saída)Processo Completo de Movimentação de Estoque (Transferências de Estoque, Inventário, Baixa parauso e Consumo e Outros).Reajuste de PreçosGrade Numerada

RM Saldus (Contabilidade Gerencial)

Objetivo:Capacitação do usuário nas movimentações Contábeis.

Conteúdo:Lançamentos (Inclusão/Alteração e Manutenção de Lançamentos)Verificação de Débito x CréditoRetrospectiva de Saldos Centro de Custos/Contábil - RelatóriosManutenção de LotesLançamentos AutomáticosGeração de Lançamentos AutomáticosOrçamentos (Manutenção de Orçamentos e Zerar Orçamentos).Acompanhamento Orçamentário - RelatórioTransferências de Grupos ContábeisInstrução NormativaLiberação do PeríodoRelatórios (Listagens de Lançamentos, Plano de Contas, Balancete, Razão, Livro Diário, etc).

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 55

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 56: RM Bis.pdf

CORPORE RM AdministrativoCORPORE RM Administrativo

RM Liber (Escrituração Fiscal)

Objetivo:Capacitação do usuário nas movimentações Fiscais.

Conteúdo:LançamentosPeríodos de ApuraçãoManutenção de Lançamentos de Entradas, Saídas e Outros Débitos/CréditosLançamentos em LotesRotinas Legais (Convênio ICMS, Apuração ICMS/ISS, Declaração de IPI, IRRF, etc).Outros Tributos(PIS, Cofins, etc).Utilitários (Lançamentos Inversos, Encerrar Períodos Apuração, Duplica Natureza, etc.).Relatórios FiscaisEmissão de Livros Fiscais

RM Fluxus (Controle Financeiro)

Objetivo:Capacitação do usuário nas movimentações do contas a pagar, contas a receber, cobrança etesouraria.

Conteúdo:Manutenção de Lançamentos (Inclusão, Alteração, Exclusão, Cancelamento, Baixa, AlteraçãoGlobais, etc).Fluxo de CaixaFaturar LançamentosChequesExtrato de CaixaAplicação Financeira, Adiantamento, Orçamentos, Nota de Crédito e Imposto de Renda.

RM Bonum (Controle Patrimonial)

Objetivo:Capacitação do usuário no Controle e Movimentações Patrimoniais.

Conteúdo:Consistência de BensCadastro de Ocorrências e Ocorrências Automáticas.Movimentações (Cálculo Nova Tabela de Índice, Recálculo para 2ª Moeda, Recálculo Geral eAlteração de Campos dos Bens, etc).Relatórios (Razão Auxiliar, Contabilização, Instrução Normativa, etc).

Integrações CORPORE RM Administrativo( RM Nucleus x RM Fluxus / RM Nucleus x RM Saldus / RM Fluxus x RM Saldus )

Objetivo:Capacitação do usuário nas integrações dos Departamentos Administrativo, Financeiro eContábil.

Conteúdo:Parametrização dos Tipos de Movimentos para integração Financeira e Contábil no RM NucleusParametrização da integração contábil no RM FluxusCadastro de Eventos ContábeisCadastro dos defaults contábeis

56 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 57: RM Bis.pdf

CORPORE RM PCORPORE RM Projetosrojetos

RM Solum (Gerenciamento de Obras e Projetos)

Objetivo:Capacitação do Usuário para utilização de diversos setores da Empresa na elaboração deOrçamentos, Planejamento e Acompanhamento de Projetos.

Conteúdo:Elaboração de um Orçamento CompletoCotação de preços dos insumos na unidade orçada ou na unidade de compra.Cálculo do Custo Horário de Equipamentos e de Mão-de-obra.Cronograma Previsto x Real x Medido.Cronograma DesembolsoPERT - (Técnica de Avaliação e Revisão de Programas)Integração com o MS Project/ExcelApropriação de Insumos/ComposiçãoMedição (Reajuste, Realinhamento, Retenções/Adiantamentos) de Contratos.Aditivos de ContratosMedição Via PALMConcorrência Eletrônica

CORPORE RM EducacionalCORPORE RM EducacionalRM Classis (Gestão Educacional)

Objetivo:Capacitação dos profissionais ligados às atividades de Secetaria e Tesouraria da instituição deensino.

Conteúdo:Cadastros de Alunos e Professores;Matrícula, Rematricula e Enturmação;Cadastro de Histórico;SOE;Cadastro de Notas por aluno, por prova, por etapa etc.Cálculo de médias;Controle de materiais escolares;Plano de Pagamento das mensalidades;Lançamentos financeiros;Cobrança;Impressão dos principais relatórios.

CORPORE RM PCORPORE RM ProduçãoroduçãoRM Factor (Planejamento e Controle da Produção)

Objetivo:Auxiliar a montagem da linha de produção, da engenharia do produto, o seqüenciamento dasetapas e a carga da fábrica, contemplando o PCP (Planejamento e o Controle da Produção).

Conteúdo:Otimização do uso de recursos físicos e financeiros - produção a custo mínimo, com amplo controlede processos e gerenciamento minucioso de rotinas administrativasAvaliação de desempenho e correção de desviosDimensionamento da interferência de variáveis, possibilitando a previsão de resultados em dife-rentes condições ambientais, humanas e estruturais através de caminho críticoFornecimento de informações detalhadas, com ágil atendimento ao cliente, fácil Cumprimento de prazos e garantia de qualidade dos serviços prestadosControle de manutenção preventiva e corretivaAcompanhamento de ordens de serviçoIntegração com Faturamento e Recursos HumanosAcompanhamento de índices de produtividade / serviçosTotal controle da inadimplência

CORPORE RM ManutençãoCORPORE RM ManutençãoRM Officina (Manutenção e Assistência Técnica)

Objetivo:Capacitação do usuário nas movimentações e análises dos processos de assistência técnica emanutenções em geral.

Conteúdo:Operações (Manutenção/Movimentos, Agendamento de Serviços, Status da Oficina, Contratos deManutenção, Acompanhamento de Processos, Propostas, Análise de Movimentos, Problemas,Atendimento, etc)Mão-de-Obra (Cronograma Pessoal, Desempenho Individual, Desempenho Mensal, Acompanhamentona Oficina e Ocupação de Mão-de-Obra, etc) análises através de gráficos e relatórios.

Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2 57

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida

Page 58: RM Bis.pdf

Geradores de RGeradores de Relatórios e Consultas à Base de Dadoselatórios e Consultas à Base de DadosGerador de Relatórios do CORPORE RM ( ênfase no aplicativo RM Labore )

Objetivo:Capacitação dos profissionais ligados às atividades do Departamento Pessoal e Informática nacriação de relatórios personalizados.

Conteúdo:Conceitos de relacionamento de tabelas;Diagrama de relacionamentos;Utilização de Sentenças Simples de SQL;Segurança dos relatórios - Permissão de Acesso;Montagem de exemplos de relatórios, onde será possível utilizar vários recursos do Gerador; Exercícios práticos.

Consultas SQL à Base CORPORE RM + RM Bis

Objetivo:Capacitação do usuário na elaboração de Consultas SQL e na elaboração dos cubos do RMBis.

Conteúdo:Bancos de Dados e SGBD’S

TabelasChaves primáriasChaves EstrangeirasSistemas Gerenciadores de Bancos de Dados Utilizados Atualmente na RM (Relacionais e TecnologiaCliente/Servidor)Bancos de Dados Cliente/ServidorDistribuição dos Softwares na Rede (CORPORE RM )Nomeclatura das Tabelas do CORPORE RM Tipos de DadosRelacionamento Entre as Tabelas do CORPORE RM CORPORE RM (Diagrama Parcial)

Manipulação dos Bancos de Dados - Padrão SQL (Structured Query Language).Famílias de Comando SQL

O Comando Select Cláusula SELECTFunções de Agrupamento ou EmbutidasCláusula WHEREExemplos de consulta com os Operadores de ComparaçãoCláusula GROUP BYCláusula ORDER BY Cláusula HAVING Cláusula UNIONAlias de Coluna (Apelidos)Passagem de Parâmetros

RM BisParâmentrosCriação de CubosManutenção de CubosAnálise dos Cubos

Gerador de Relatórios do CORPORE RM( ênfase nos aplicativos RM Nucleus e RM Fluxus )

Objetivo:Capacitação do usuário na criação e ajustes de Relatórios dos Aplicativos RM Nucleus e RMFluxus.

Conteúdo:Formatação de RelatóriosDefinição de Grupos Layout e Campos de relatórios.Noções Básicas de Análise (Relacionamento, Tabelas, Chaves Primárias, Chaves Estrangeiras).Principais Tabelas do RM Nucleus (Produtos, Movimentos, Lançamentos, etc).Principais Tabelas do RM Fluxus (Cliente/Fornecedor, Lançamentos, Extratos, etc).Montagens de relatórios do RM Fluxus e do RM Nucleus.

58 Consultas SQL à baseCORPORE RM / RM Bis - Versão 6.0.2

Treinamentos RM: caminho certo para o sucesso profissionalReprodução Proibida