Você está na página 1de 58

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.

Consultas SQL à
base CORPORE RM e
RM Bis

Professor
Versão: 6.0.2

Treinamentos
www.rm.com.br
A RM Sistemas foi fundada em 1986 e é atualmente uma das
maiores 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 Sistemas
está 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 a
revista IstoÉ Dinheiro, a RM Sistemas é a "Melhor Empresa do
Setor 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 utiliza


avançada tecnologia e permite total integração dos processos
em 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.

SERVIÇOS ON LINE

Através do Site RM Sistemas você tem acesso a serviços


exclusivos como: informações financeiras e cadastrais,
emissão de 2ª via de nota fiscal e boleto bancário, consulta
e ocorrências, envio de base, senhas e download de novas
versões, log de acessos e fórum de discussão. Tudo isso
com total segurança.

Cadastre - se agora mesmo no menu cliente on-line


www.rm.com.br
Consultas SQL à base
CORPORE RM / RM Bis
Versão: 6.0.2

ÍNDICE
Visão Geral do CORPORE RM ....................................................................................................04
Apresentação ............................................................................................................................05
Objetivos do Curso ..........................................................................................................05
Conteúdo Programático ..................................................................................................05
Expectativas do Curso ....................................................................................................05
MÓDULO
MÓDULO 1..............................................................................................................................06
1
Introdução Teórica ..........................................................................................................06
Bancos de Dados e SGBD´S ............................................................................................06
Tabelas ............................................................................................................................06
Chaves Primárias....................................................................................................07
Chaves Estrangeiras ..............................................................................................07
Banco de Dados Cliente/Servidor ....................................................................................07
Distribuição dos Softwares na Rede (CORPORE RM) ......................................................08
Tipos de Dados................................................................................................................08
Nomeclatura das tabelas do CORPORE RM ....................................................................09
Relacionamento entre tabelas ..........................................................................................10
Diagrama de Relacionamento ................................................................................11
MÓDULO
MÓDULO 2..............................................................................................................................12
2
Manipulação dos Bancos de Dados ................................................................................12
Famílias de Comandos SQL ............................................................................................12
O Comando SELECT ........................................................................................................12
Cláusula Select ......................................................................................................13
Cláusula FROM ......................................................................................................13
Funções de Agrupamento ................................................................................................15
Cláusula WHERE ....................................................................................................17
Operadores ............................................................................................................17
Cláusula GROUP BY ..............................................................................................19
Cláusula ORDER BY................................................................................................19
Cláusula HAVING ..................................................................................................20
Cláusula UNION ....................................................................................................20
Alias de Tabela (Apelidos) ................................................................................................21
Exercícios - Sentenças RM Labore ..................................................................................21
MÓDULO
MÓDULO 3..............................................................................................................................23
3
Consultas com Junção ....................................................................................................23
Alias de Tabela (Apelidos) ................................................................................................24
Exercícios - Sentenças RM Labore ..................................................................................24
Exemplos de Aplicação das Sentenças SQL ....................................................................28
Gerador ..................................................................................................................28
Planilha ..................................................................................................................29
Passagem de Parâmetros ................................................................................................30
MÓDULO
MÓDULO 4..............................................................................................................................31
4
Outer Joins ......................................................................................................................31
Exercícios - Sentenças RM Labore ..................................................................................32
MÓDULO
MÓDULO 5 ............................................................................................................................33
Exercícios Gerais ..............................................................................................................33
Teóricos..................................................................................................................33
Setenças RM Fluxus ..............................................................................................33
Setenças RM Saldus ..............................................................................................35
Setenças RM Labore ..............................................................................................35
Setenças RM Nucleus ............................................................................................38
MÓDULO
MÓDULO 6..............................................................................................................................39
6
BI(Business Intelligence) ..................................................................................................39
Iniciando o RM Bis ..........................................................................................................39
Menu Cadastros ..............................................................................................................40
Cadastros / Tipos de Cubos....................................................................................41
Relatórios / Cubos(EIS) ..........................................................................................41
Criando Cubos ................................................................................................................42
Roteiro....................................................................................................................42
Editando Cubos ..............................................................................................................48
Pasta Cubo de Decisão ..........................................................................................48
Ícones do Cubo ......................................................................................................48
Áreas de Divisão do Cubo................................................................................................49
Alterando a Dimensão da Análise dos Dados ........................................................51
Para Acrescentar uma Dimensão na Área de Consulta ..........................................51
Para Remover uma Dimensão da Área de Consulta................................................51
Para Alterar a posição de uma Dimensão da Área de Consulta ..............................52
Para Selecionar / Não Selecionar Registros de uma Dimensão................................52
Gráfico ............................................................................................................................52
Botões Disponíveis ................................................................................................52
Para aumentar/diminuir a escala do gráfico ............................................................53
Exercícios ........................................................................................................................53
ANEXOS
ANEXOS ..................................................................................................................................54
Treinamentos RM Sistemas ............................................................................................54
Visão Geral do CORPORE RM - Administrativo

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 5
ANOTAÇÕES Apresentação

Objetivos do Curso

Apresentar ao aluno conceitos básicos de banco de dados e da linguagem


de 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 profissional


Reprodução Proibida
Consultas SQL à base
6 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Mó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ção
de dados inter-relacionados e, um conjunto de programas para acessar
esses dados. A coleção de dados é geralmente classificada como o banco
de dados. O principal objetivo de um SGBD é proporcionar um ambiente
conveniente e eficiente, para coletar e armazenar informações no banco de
dados.

O gerenciador de banco de dados é o módulo que provê a interface entre as


informações armazenadas no banco de dados e, os programas de aplicação
e consultas submetidas ao sistema. O gerenciador é responsável pela inte-
ração com o sistema operacional, para o gerenciamento do acesso aos
arquivos, 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 podemos


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

Dentre este modelos vamos destacar o modelo relacional, que envolve o


conceito de armazenar dados em um único “objeto” centralizador, estrutu-
rado internamente em tabelas e colunas que se relacionam entre si, através
de chaves primárias e estrangeiras, que são os campos comuns entre as
tabelas.
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 a
partir 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: chave
primária (Primary Key);
„ Colunas: são também chamadas de atributos ou campos.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 7

ANOTAÇÕES Funcionários
chapa nome endereço telefone ……...

1001 João ……. 5554444 ~~~


1002 Alberto ……. 4687999 ~~~
1003 Franciso …….. NULL ~~~
1004 Maria …….. 5678900
1005 Sônia ……... 0988855 ~~~
1006 Roberto ………. NULL ~~~

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

Chaves Primárias
Uma chave primária (primary key) é um campo ou conjunto de campos, que
identifica 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 campos
de identificadores, como código da coligada (codcoligada), código da filial
(codfilial), etc. As chaves primárias podem ser compostas por mais de uma
coluna.

Chaves Estrangeiras
Uma 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 for
Windows, formam o banco de dados CORPORE RM.

Bancos de Dados Cliente/Servidor

Antes de surgirem os bancos SQL Server


de dados cliente/servidor, a
A
maioria dos bancos de dados
armazenava seus dados na
mesma máquina onde eram B
manipulados. Com o surgi-
mento das redes locais, os
bancos de dados foram C
transferidos para o computador
central, que armazenava os
registros, en-quanto os nós da
rede (computadores cliente,
estações de trabalho de cada
usuário) requisitavam tais
dados para manipulá-los.
Client Application

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
8 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES 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 um
banco 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ão
enviados 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 do
BDE, que retorna apenas a consulta ou o resultado final para as
estaçõ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 de


Dados);

Aplicativos - CORPORE RM;

No Ambiente Cliente/Servidor

No Servidor - Instala-se o SGBDR e a Base de Dados (MS-SQL, Oracle


ou Interbase).

Nas Estações Clientes - Se for SQL Server ou Oracle, instala-se o


cliente SQL dos mesmos, instala-se então o BDE e, posteriormente, os
Aplicativos RM.

No Ambiente Local

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


Aplicativos.

Tipos de Dados

Os tipos de dados abaixo relacionados, são tipos suportados pelos bancos


de dados relacionais, geralmente usados no sistema:

Char (n)
Armazena até 255 caracteres. O parâmetro “n” define o número de
caracteres a serem alocados. Este número é fixo, independente do
tamanho 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.

Datetime
Armazena datas. O padrão é MM-DD-YYYY HH:MMAM. Para
apresentar somente horas, o valor precisa conter um sinal de dois
pontos (:) ou a expressão AM ou PM. Sempre informe valores deste
tipo entre aspas simples.

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

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 9

ANOTAÇÕES Int
Armazena números inteiros, que podem variar de
-2.147.483.648 a 2.147.483.647.

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

Text
Tipo de dado de tamanho variável, que armazena caracteres. Deve ser
utilizado entre aspas simples. Suporta uma grande quantidade de
armazenamento de textos.

Image
Tipo 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 aparecer
entre aspas simples em expressões.

Nomenclatura das tabelas do CORPORE RM

A base de dados do CORPORE Sistema Código


RM é composta de várias tabelas
RM CHRONUS A
relativas aos aplicativos. Para
maior facilidade de manipulação RM TESTIS B
dos dados, estas tabelas foram RM SALDUS C
nomeadas (codificadas) de acor- RM LIBER D
do com o aplicativo. Por exemplo, RM CLASSIS - E E
todas as tabelas que iniciam com RM FLUXUS F
a letra T, são tabelas perten-
RM BIS G
centes ao aplicativo RM Nucleus.
Veja tabela a seguir: RM AGILIS H
RM BONUM I
RM PLANOS J
RM FACTOR K
RM BIBLIOS L
RM SOLUM M
RM OFFICINA N
RM SAÚDE O
RM LABORE P
RM NUCLEUS T
RM CLASSIS - U U
RM VITAE V
RM SGI X

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
10 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Relacionamento entre tabelas


De acordo com os conceitos de banco de dados relacional, haverá
relacionamento quando existirem campos comuns entre as tabelas. Estes
campos 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.codcoligada
gfilial.codfilial pfunc.codfilial

3) psecao.codcoligada pfunc.codcoligada
psecao.codigo pfunc.codsecao
psecao.codfilial pfunc.codfilial

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

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

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

7) pcodsituacao.codcliente pfunc.codsituacao

8) pcargo.codcoligada pfuncao.codcoligada pfunc.codcoligada


pcargo.codigo pfuncao.cargo
pfuncao.codigo pfunc.codfuncao

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 11

ANOTAÇÕES Diagrama de Relacionamento


Para facilitar a visualização das tabelas de um aplicativo e o relacionamento
entre as mesmas, dispomos de exemplo gráfico das tabelas.

Aplicativo RM Labore

DIAGRAMA DE ENTIDADES E RELACIONAMENTOS

GCOLIGADA
*Codcoligada - Smallint
1 Nome - Varchar (40)
Nomefantasia - Varchar (35)
1

N
GFILIAL
*Codcoligada - Smallint
*Codfilial - Smallint
Nome - Varchar (40) 1
Nomefantasia - Varchar (35)
1

N
PSECAO
*Codcoligada - Smallint
*Codigo - Varchar (35)
#Codfilial - Smallint
Descricao - Varchar (60)
PCARGO 1

*Codcoligada - Smallint
*Codigo - Varchar (16)
Nome - Varchar (40)
PSINDIC
1 N
N N *Codcoligada - Smallint
PFUNC *Codigo - Varchar(10)
N Nome - Varchar (120)
PFUNCAO *Codcoligada - Smallint N 1
*Codcoligada - Smallint *Chapa - Varchar (16)
1 #Codfilial - Smallint
*Codigo - Varchar (10) PCODSITUACAO
#Cargo - Varchar (16) #Codsecao - Varchar (35)
Nome - Varchar (40) #CodFuncao - Varchar (10) *Codcoligada - Smallint
N #Codsindicato - Varchar (10) *Codcliente - Char (1)
N 1
#Codsituacao - Char (1) Descricao - Varchar (50)
PFDEPEND 1 #Codbancofgts - Varchar (3)
#Codbancopagto - Varchar (3)
*Codcoligada - Smallint Nome - Varchar (45)
#Chapa - Varchar (16) Salario GBANCO
*Nro Depend - Smallint N
Dataadmissao - Datetime (8)
Nome - Varchar (30) Datademissao - Datetime (8) *Numbanco - Varchar (3)
N 1
Sexo - Varchar (1) Nome - Varchar (40)

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
12 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES MÓDULO 2
Manipulação dos Bancos de Dados
Padrão SQL (Structured Query Language)

Linguagem estruturada de consulta e manipulação dos elementos no banco


de dados, é um padrão internacional inicialmente desenvolvido pela IBM,
agora coordenado pela ANSI-standard, sendo que sua última publicação foi
em 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 Dados
Comandos de manipulação da estrutura do banco de dados (create, alter,
drop, rename).

DML - Linguagem de Manipulação de Dados


Comandos de manipulação dos registros (dados) do banco de dados (insert,
select, update, delete).

DCL - Linguagem de Controle de Dados


Comandos de manipulação de acesso a estrutura/registros do banco de
dados (grant, revoke).

A família de comandos DML está associada diretamente ao dia-a-dia do


Técnico de Suporte, principalmente, o comando SELECT. Tendo em vista
que 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. No
entanto, temos total liberdade de nos aprofundarmos na exploração dos
recursos, 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).

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 13

ANOTAÇÕES Cláusula SELECT

Sintaxe
SELECT (Lista de Colunas);

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

Argumentos

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

ALL
Define que todos os registros serão selecionados, este argumento é o
default, 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 SQL


O usuário terá à disposição em todos os aplicativos CORPORE RM, um ícone
para acesso ao editor de consultas. No exemplo, utilizaremos o Aplicativo
RM Labore, no entanto poderá ser acessado de qualquer aplicativo.

Clique no botão correspondente, na barra de ferramentas do aplicativo, ou


acesse MENU UTILITÁRIOS / CONSULTAS SQL.
Será apresentada a janela de visão de consultas. Para inserir uma nova
consulta, basta clicar no ícone "Inserir Novo", a seguinte janela será
apresentada:

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
14 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Como exemplo utilizaremos, inicialmente, a consulta de seleção de


funcionários:

SELECT NOME, SALARIO FROM PFUNC

Campos selecionados
Nome e salário.

Tabela a ser pesquisada


PFUNC, tabela de funcionários do aplicativo RM Labore.

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


Executar.

Será apresentado o seguinte resultado:

Algumas sentenças serão muito utilizadas para localização das tabelas e


colunas do CORPORE RM.

Exemplos:
„ SELECT * FROM GSISTEMA
Lista todos os dados dos sistemas CORPORE RM.

„ SELECT * FROM GCAMPOS


Ideal para localização das tabelas e colunas do CORPORE RM.

SELECT * FROM GCAMPOS


WHERE DESCRICAO = ‘FUNCIONARIOS‘

SELECT * FROM GCAMPOS


WHERE TABELA = ‘PFUNC‘ AND
DESCRICAO = ‘SALARIO‘

„ SELECT * FROM GLINKSREL


Lista 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 executada
no Banco de Dados, através do módulo “Query Analyzer”.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 15

ANOTAÇÕES Aplicativo RM Labore:

SELECT ALL CODSITUACAO FROM PFUNC


Lista todos os códigos de situação existentes na tabela de funcionários (com
repetição).

SELECT DISTINCT CODSITUACAO FROM PFUNC


Lista todos os códigos de situação existentes na tabela de funcionários (sem
repetição).

SELECT * FROM PFUNC


Lista todos os registros e colunas da tabela pfunc (funcionários).

SELECT NOME, SALARIO FROM PFUNC


Lista todos os registros da tabela pfunc e somente as colunas com os
nomes e salários dos funcionários.

SELECT NOME, DATADEMISSAO FROM PFUNC


WHERE DATADEMISSAO IS NOT NULL
Lista 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 TPRD
Lista 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 TCNT
Lista 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. Por
padrão todas as linhas de uma tabela são tratadas como um grupo.

Observação:
As funções de agrupamento ignoram valores nulos. A única
exceção é a função COUNT, que em alguns tipos de aplicação
poderã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 TPRD


Lista a quantidade de produtos existentes na tabela.

SELECT COUNT (DISTINCT PRECO1) FROM TPRD


Lista a quantidade de produtos que não tenham preços repetidos.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
16 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES 2. SUM: Soma todos os valores da coluna selecionada, os valores nulos


são ignorados.

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

SELECT SUM (DISTINCT SALARIO) FROM PFUNC


Lista 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 de
cada 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 PFUNC
Lista o maior salário da tabela.

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

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

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 17

ANOTAÇÕES Cláusula WHERE

WHERE
Determina uma condição que os registros devem satisfazer, para serem
selecionados em uma ou mais tabelas.

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

Utilizando Tabelas do RM Fluxus.

SELECT IDLAN, CODCFO, DATAVENCIMENTO, VALORORIGINAL


FROM FLAN
WHERE 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, ~ NOT


2. (*) Multiplicação, (/) Divisão, (%) Módulo
3. (+) ADD e Concatenação, (-) Subtração
4. = , <, >, =>, <=,!=, !>,!< (Comparação)
5. NOT
6. AND
7. ALL, ANY, BETWEEN, IN, LIKE OR SOME

Exemplos:

„ 1. (+) ADD:
Exemplo:
SELECT NOME, SALARIO + 400 FROM PFUNC
Seleciona o nome dos funcionários, adicionando 400 reais no
salário de todos.

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

„ 3. DIVISÃO
Exemplo:
SELECT NOME, SALARIO / 20 FROM PFUNC
Seleciona o nome e o salário dos funcionários dividido por 20.

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

COMPARAÇÃO
Igualdade =
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 ! =

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
18 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Exemplos de consulta com os Operadores de Comparação:

Igual a (=)
SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO = 580
Lista todos os nomes e salários dos funcionários, com salário igual a
R$ 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 da
seção 01.01.

Maior que (>)


SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO >500
Lista 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 >=500
Lista todos os nomes e salários dos funcionários, com salário maior ou igual
a R$ 500,00.

Menor que (<)


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

Menor ou igual a (<=)


SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO <=500
Lista todos os nomes e salários dos funcionários, com salário menor ou
igual 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 a
R$ 500,00, R$ 700,00, R$ 800,00 e R$ 900,00.

LIKE: Permite procurar strings que atendam determinado padrão de


pesquisa.
%(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', 1
caracter 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'.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 19

ANOTAÇÕES IS NULL: Testa valores que são nulos.


SELECT NOME, DATADEMISSAO FROM PFUNC
WHERE DATADEMISSAO IS NULL
Lista os nomes de funcionários que tenham data de demissão nula (sem
dado).

NOT: Inverte o resultado de uma condição.


SELECT NOME, DATADEMISSAO FROM PFUNC
WHERE 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 BY
Agrupa linhas de uma tabela dentro de grupos menores. É utilizada em con-
junto com as funções de grupo.

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

Cláusula ORDER BY

ORDER BY
Define a ordem das linhas do resultado de uma pesquisa. Deve ser a última
cláusula do SELECT. Utiliza-se ASC (ordem crescente) e DESC (ordem
decrescente). 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 na


cláusula ORDER BY.

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

Exemplos:
SELECT NOME, SALARIO FROM PFUNC ORDER BY NOME ASC
Lista todos os registros da tabela pfunc, apresentando somente
as colunas com os nomes (em ordem alfabética) e salários dos
funcionários.

SELECT NOME, SALARIO FROM PFUNC ORDER BY NOME DESC


Lista todos os registros da tabela pfunc, apresentando somente
as colunas com os nomes (em ordem decrescente) e salários
dos funcionários.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
20 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Cláusula HAVING

HAVING
Usada 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, PFUNC
WHERE PSECAO.CODIGO=PFUNC.CODSECAO
GROUP BY PSECAO.CODIGO
HAVING MIN(SALARIO)>1000

Mostra o código da seção, a soma dos salários, o maior salário


e o número de funcionários, desde que o menor salário seja
superior a 1000.

Cláusula UNION

UNION
Usada para unir duas ou mais consultas (SELECT).

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

„ SELECT CHAPA, NOME, LOCALNASCIMENTO FROM PFDEPEND


WHERE 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 PFUNC
WHERE SALARIO = (SELECT MIN(SALARIO)FROM PFUNC)
UNION
SELECT NOME, SALARIO FROM PFUNC
WHERE SALARIO = (SELECT MAX(SALARIO)FROM PFUNC)

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 21

ANOTAÇÕES 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, no
momento 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ários


da 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 e
que possuam a função 00018.

SELECT NOME, SALARIO FROM PFUNC


WHERE SALARIO NOT BETWEEN 400 AND 500 AND
DATAADMISSAO BETWEEN '05/01/2000' AND '05/31/2000' AND
CODFILIAL=1 AND
CODFUNCAO=00018
ORDER BY SALARIO DESC

3) Selecione os nomes dos funcionários da Filial 1, cujo nome contenha


a letra N.

SELECT NOME FROM PFUNC


WHERE CODFILIAL=1 AND NOME LIKE '%N%'

4) Liste os nomes e os salários dos funcionários da coligada 1, cujo


nome contenha a letra M e o salário seja superior a 500.

SELECT NOME, SALARIO FROM PFUNC


WHERE NOME LIKE '%M%' AND SALARIO > 500 AND CODCOLIGADA=1

5) Selecione os nomes, as chapas, os salários e a data de admissão dos


funcioná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 PFUNC


WHERE SALARIO NOT BETWEEN 400 AND 500 AND
DATAADMISSAO BETWEEN '05/01/2000' AND '05/31/2000' AND
CODFILIAL=1

6) Selecione a quantidade de funcionários agrupados por seção, que


pertençam a coligada 1.

SELECT CODSECAO, COUNT(*) FROM PFUNC


WHERE 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 PFUNC
GROUP BY CODFILIAL

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
22 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES 8) Mostre os códigos das seções e a média salarial das mesmas, mas
somente das que possuem a média salarial maior que 500.

SELECT CODSECAO, AVG(SALARIO) MEDIA FROM PFUNC


GROUP BY CODSECAO
HAVING AVG(SALARIO)>500

9) Selecione o nome e data de admissão dos funcionários mais antigos


da empresa.

SELECT NOME, DATAADMISSAO FROM PFUNC


WHERE DATAADMISSAO=(SELECT MIN(DATAADMISSAO) FROM
PFUNC)

10) Informe a filial, o número de funcionários de cada filial, a soma dos


salá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 PFUNC
GROUP BY CODFILIAL

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


sa?

SELECT CODSINDICATO, COUNT(CHAPA) TOTAL FROM PFUNC


GROUP BY CODSINDICATO

12) Selecione o código da seção, a quantidade de funcionários, sendo o


código da situação igual a A (ATIVO) e, somente da seção com mais
de dois funcionários.

SELECT CODSECAO SECAO, CODSITUACAO SITUACAO,


COUNT(CHAPA) TOTAL FROM PFUNC
GROUP BY CODSECAO, CODSITUACAO
HAVING 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 maior
que 400, em ordem decrescente.

SELECT NOME, CODSECAO SECAO, CODFUNCAO FUNCAO,


SALARIO FROM PFUNC
WHERE CODSECAO=01.01 AND
(CODFUNCAO='00010' OR CODFUNCAO='00011') AND
SALARIO >400
ORDER 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 se
inicie com a letra ‘J’.

SELECT NOME, DATAADMISSAO, CODCOLIGADA FROM PFUNC


WHERE DATAADMISSAO BETWEEN '05/01/2000' AND '05/31/2000'
AND NOME LIKE 'J%'

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 23

ANOTAÇÕES MÓDULO 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óia
para 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” em
relação a tabela principal de sua sentença SQL.

Exemplo:
SELECT GFILIAL.NOME, PFUNC.CHAPA FROM GFILIAL, PFUNC
WHERE GFILIAL.CODCOLIGADA=PFUNC.CODCOLIGADA
AND GFILIAL.CODFILIAL=PFUNC.CODFILIAL

Neste exemplo, a tabela principal é a PFUNC (funcionários da empresa) e


não temos o nome da filial fazendo parte de sua estrutura. O nome da filial
está 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.NOME


FROM GCOLIGADA, PFUNC
WHERE GCOLIGADA.CODCOLIGADA=PFUNC.CODCOLIGADA
Lista o nome da coligada e as chapas dos funcionários.

SELECT PSECAO.DESCRICAO, PFUNC.CHAPA, PFUNC.NOME


FROM PSECAO, PFUNC
WHERE PSECAO.CODCOLIGADA=PFUNC.CODCOLIGADA
AND PSECAO.CODIGO=PFUNC.CODSECAO
Lista a descrição da seção e as chapas dos funcionários.

SELECT GBANCO.NOME, PFUNC.CHAPA, PFUNC.NOME


FROM GBANCO, PFUNC
WHERE GBANCO.NUMBANCO=PFUNC.CODBANCOPAGTO
Lista o nome do banco de pagamento e as chapas dos funcioná-
rios.

SELECT GBANCO.NOME, PFUNC.CHAPA, PFUNC.NOME


FROM GBANCO, PFUNC
WHERE GBANCO.NUMBANCO=PFUNC.CODBANCOFGTS
Lista o nome do banco de FGTS e as chapas dos funcionários.

SELECT PCODSITUACAO.DESCRICAO, PFUNC.CHAPA,


PFUNC.NOME
FROM PCODSITUACAO, PFUNC
WHERE PCODSITUACAO.CODCLIENTE=PFUNC.CODSITUACAO
AND PCODSITUACAO.DESCRICAO LIKE ‘AF%’
Lista o nome da situação (somente as que contém a descrição
afastamento) e as chapas dos funcionários.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
24 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Outro exemplo usando a opção INNER JOIN

SELECT PFUNC.NOME, PFUNCAO.NOME FROM


PFUNC INNER JOIN PFUNCAO
ON PFUNC.CODCOLIGADA= PFUNCAO.CODCOLIGADA AND
PFUNC.CODFUNCAO= PFUNCAO.CODIGO

SELECT PCARGO.NOME, PFUNC.CHAPA, PFUNC.NOME


FROM PCARGO, PFUNC, PFUNCAO
WHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA
AND PCARGO.CODIGO=PFUNCAO.CARGO
AND PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA
AND PFUNCAO.CODIGO=PFUNC.CODFUNCAO

Lista o nome do cargo e as chapas dos funcionários. Observe


que 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 uma


determinada consulta.

Exemplo:
SELECT G.NOME, P.NOME FROM PFUNC P, GFILIAL G
WHERE 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 em


que os mesmos trabalham, sendo que as seções serão listadas em
ordem alfabética e os nomes em ordem decrescente.

SELECT PFUNC.NOME, PSECAO.DESCRICAO


FROM PFUNC, PSECAO
WHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.CODSECAO=PSECAO.CODIGO
ORDER BY PSECAO.DESCRICAO ASC, PFUNC.NOME DESC

2) Selecione os nomes e a descrição da situação das funcionárias que


estão de Licença Maternidade.

SELECT PFUNC.NOME, PCODSITUACAO.DESCRICAO


FROM PFUNC, PCODSITUACAO
WHERE PFUNC.CODSITUACAO=PCODSITUACAO.CODCLIENTE
AND PCODSITUACAO.CODCLIENTE='E'

3) Selecione o nome da seção Comercial e o nome dos funcionários em


ordem alfabética.

SELECT PFUNC.NOME, PSECAO.DESCRICAO


FROM PFUNC, PSECAO
WHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.CODSECAO=PSECAO.CODIGO AND
PSECAO.DESCRICAO LIKE 'COM%'
ORDER BY PFUNC.NOME

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 25

ANOTAÇÕES 4) Selecione a chapa, o nome dos funcionários e o nome das funções


exercidas por cada um, em ordem crescente de nome da função.

SELECT PFUNC.CHAPA, PFUNC.NOME, PFUNCAO.NOME FROM


PFUNC, PFUNCAO
WHERE PFUNC.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND
PFUNC.CODFUNCAO=PFUNCAO.CODIGO
ORDER BY PFUNCAO.NOME

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

SELECT PSECAO.DESCRICAO, AVG(PFUNC.SALARIO) MEDIA


FROM PSECAO, PFUNC
WHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.CODSECAO=PSECAO.CODIGO
GROUP BY PSECAO.DESCRICAO
HAVING AVG(PFUNC.SALARIO)>=1000

6) Selecione os nomes dos funcionários, cargos e os nomes das seções


da filial 1, em ordem de nome dos funcionários.

SELECT GFILIAL.CODFILIAL, PFUNC.NOME, PCARGO.NOME


CARGO, PSECAO.DESCRICAO SECAO
FROM GFILIAL, PFUNC, PCARGO, PSECAO, PFUNCAO
WHERE PFUNC.CODFILIAL=GFILIAL.CODFILIAL AND
PFUNC.CODCOLIGADA=GFILIAL.CODCOLIGADA AND
PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND
PCARGO.CODIGO=PFUNCAO.CARGO AND
PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA AND
PFUNCAO.CODIGO=PFUNC.CODFUNCAO AND
PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.CODSECAO=PSECAO.CODIGO AND
PFUNC.CODFILIAL=1
ORDER BY PFUNC.NOME

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

SELECT PCARGO.NOME, AVG(PFUNC.SALARIO) FROM PCARGO,


PFUNC, PFUNCAO
WHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND
PCARGO.CODIGO=PFUNCAO.CARGO AND
PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA AND
PFUNCAO.CODIGO=PFUNC.CODFUNCAO
GROUP BY PCARGO.NOME
HAVING 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, GFILIAL
WHERE PFUNC.CODCOLIGADA=GFILIAL.CODCOLIGADA AND
PFUNC.CODFILIAL=GFILIAL.CODFILIAL
GROUP BY GFILIAL.NOME

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
26 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES 9) Mostre os Sindicatos, cuja a média salarial dos funcionários seja


maior que 500 reais.

SELECT PSINDIC.NOME, AVG(PFUNC.SALARIO) MEDIA FROM


PSINDIC, PFUNC
WHERE PFUNC.CODCOLIGADA=PSINDIC.CODCOLIGADA AND
PFUNC.CODSINDICATO=PSINDIC.CODIGO
GROUP BY PSINDIC.NOME
HAVING 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 que
R$ 1.000 em ordem decrescente de salário.

SELECT GCOLIGADA.NOME COLIGADA, PFUNC.NOME,


PFUNC.SALARIO FROM PFUNC, GCOLIGADA
WHERE PFUNC.CODCOLIGADA=GCOLIGADA.CODCOLIGADA AND
GCOLIGADA.NOME='RM SISTEMAS LTDA' AND
PFUNC.SALARIO>1000
ORDER 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.NOME


CARGO FROM PCARGO, PFUNCAO, PFUNC, GBANCO
WHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND
PCARGO.CODIGO=PFUNCAO.CARGO AND
PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA AND
PFUNCAO.CODIGO=PFUNC.CODFUNCAO AND
PFUNC.CODBANCOPAGTO=GBANCO.NUMBANCO AND
PCARGO.NOME='Gerência'

12) Selecione o código da filial, a quantidade de funcionários e a média


salarial dos funcionários da função 'Suporte Técnico'.

SELECT GFILIAL.CODFILIAL, PFUNCAO.NOME FUNCAO,


COUNT(PFUNC.CHAPA) FUNCIONARIOS,
AVG(PFUNC.SALARIO) MEDIA
FROM GFILIAL, PFUNC, PFUNCAO
WHERE PFUNC.CODFILIAL=GFILIAL.CODFILIAL AND
PFUNC.CODCOLIGADA=GFILIAL.CODCOLIGADA AND
PFUNC.CODFUNCAO=PFUNCAO.CODIGO AND
PFUNC.CODCOLIGADA=PFUNCAO.CODCOLIGADA
GROUP BY GFILIAL.CODFILIAL, PFUNCAO.NOME
HAVING PFUNCAO.NOME LIKE 'Suporte%'

13) Mostre o nome e a data de admissão de todos os funcionários, que


possuem o cargo 'Gerência' ou que trabalham na seção 'COM - Depto
Comercial'.

SELECT PFUNC.NOME, PFUNC.DATAADMISSAO, PCARGO.NOME


CARGO, PSECAO.DESCRICAO
FROM PFUNC, PCARGO, PSECAO, PFUNCAO
WHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND
PCARGO.CODIGO=PFUNCAO.CARGO AND
PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA AND
PFUNCAO.CODIGO=PFUNC.CODFUNCAO AND
PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.CODSECAO=PSECAO.CODIGO AND
(PCARGO.NOME LIKE 'Gerência%' OR PSECAO.DESCRICAO LIKE
'COM%')

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 27

ANOTAÇÕES 14) Mostre o total gasto em salário pela empresa, por filial, além da
média salarial de cada filial.

SELECT GFILIAL.CODFILIAL FILIAL, SUM(SALARIO) TOTAL,


AVG(SALARIO) MEDIA FROM GFILIAL, PFUNC
WHERE GFILIAL.CODCOLIGADA=PFUNC.CODCOLIGADA AND
GFILIAL.CODFILIAL=PFUNC.CODFILIAL
GROUP BY GFILIAL.CODFILIAL

15) Selecione o nome dos funcionários que possuem o salário, superior


a todos os funcionários da seção 'COM - Depto Comercial'.

SELECT PFUNC.NOME, PFUNC.SALARIO FROM PFUNC


WHERE PFUNC.SALARIO>
(SELECT MAX(SALARIO) FROM PFUNC, PSECAO
WHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.CODSECAO=PSECAO.CODIGO AND
PSECAO.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,


PSECAO
WHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.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 - Filial
RJ'.

SELECT PFUNC.NOME, PFUNC.SALARIO, PCARGO.NOME CARGO


FROM PFUNC, PCARGO, PFUNCAO
WHERE PFUNC.SALARIO >
(SELECT MAX(PFUNC.SALARIO) FROM PFUNC, GFILIAL
WHERE GFILIAL.NOME='RM SISTEMAS - FILIAL RJ' AND
PFUNC.CODCOLIGADA=GFILIAL.CODCOLIGADA AND
PFUNC.CODFILIAL=GFILIAL.CODFILIAL) AND
PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND
PCARGO.CODIGO=PFUNCAO.CARGO AND
PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA AND
PFUNCAO.CODIGO=PFUNC.CODFUNCAO AND
PCARGO.NOME='Gerência'

18) Mostre o código da seção, a soma dos salários, o maior salário, o


número de funcionários e a média salarial, onde o maior salário seja
inferior à soma dos salários da seção.

SELECT PSECAO.CODIGO, SUM(PFUNC.SALARIO) SOMA,


MAX(SALARIO) MAXIMO, AVG(PFUNC.SALARIO) MEDIA,
COUNT(CHAPA) FUNCIONARIOS
FROM PSECAO, PFUNC
WHERE PSECAO.CODCOLIGADA=PFUNC.CODCOLIGADA AND
PSECAO.CODIGO=PFUNC.CODSECAO
GROUP BY PSECAO.CODIGO
HAVING MAX(PFUNC.SALARIO)< (SELECT SUM(PFUNC.SALARIO)
FROM PFUNC)

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
28 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES 19) Informe quais as seções possuem 2 ou mais funcionários, em uma


determinada função, em ordem decrescente de nome das seções.

SELECT PSECAO.DESCRICAO, PFUNCAO.NOME,


COUNT(PFUNC.CHAPA) QTD FROM PSECAO, PFUNC, PFUNCAO
WHERE PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.CODSECAO=PSECAO.CODIGO AND
PFUNC.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND
PFUNC.CODFUNCAO=PFUNCAO.CODIGO
GROUP BY PSECAO.DESCRICAO, PFUNCAO.NOME
HAVING COUNT(PFUNC.CHAPA)>=2
ORDER BY PSECAO.DESCRICAO DESC

20) Desafio: Selecione todas colunas de “nomes/descrições de origem”


relacionados com as colunas (foreign keys) da tabela pfunc (descritos
no 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 e
armazenando dados nas tabelas do sistema, conforme o relatório exigir.
É possível trabalhar com sentenças SQL no Gerador de Relatórios, unindo
també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 para


retornar o código do produto, descrição, estoque mínimo, estoque atual e
período de carência.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 29

ANOTAÇÕES

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 único
arquivo.
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 vendas
por cidade, ou por filial.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
30 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Na janela a seguir tem-se a consulta utilizada para retornar o valor para a
cé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ção


da opção Parâmetros ou Fórmula.

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

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 31

ANOTAÇÕES MÓDULO 4
OUTER JOINS
As consultas feitas anteriormente são realizados com base em INNER
JOINs, essas consultas desprezam, ou melhor, não listam as linhas que não
tenham 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 tenham
pelo menos um banco informado e os nomes dos bancos que tenham pelo
menos um funcionário associado.
As consultas com OUTER JOINS produzem resultados contendo as colunas
selecionadas 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 uma
consulta com OUTER JOIN é:

SELECT lista_colunas
FROM <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. A
clá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. Existem


três possibilidades:

„ Um LEFT OUTER JOIN ou LEFT JOIN recupera todas as linhas da


tabela à esquerda da junção e, recupera aquelas linhas da tabela
à direita, que satisfazem às condições especificadas na cláusula
ON.
„ Um RIGHT OUTER JOIN ou RIGHT JOIN recupera todas as linhas
da 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 de
ambas as tabelas, independentemente, das condições especifica-
das na cláusula ON.

Utilizamos consultas com OUTER JOINS quando queremos comparar todos


os dados de uma tabela, com o subconjunto dos dados relacionados na
outra tabela.

Exemplos:
„ SELECT P.NOME, B.NOME FROM PFUNC P LEFT OUTER JOIN
GBANCO B ON P.CODBANCOPAGTO=B.NUMBANCO
Lista todos os nomes dos funcionários e os nomes dos bancos
de depósito de pagamento, somente para aqueles que possuem
contas de pagamento cadastradas.

Nos SGBDs do ORACLE e SQL SERVER, temos outras maneiras


de especificar um OUTER JOIN na cláusula WHERE, que poderá
utilizar o (+) e o (*), respectivamente. Vejamos como ficariam o
exemplo 1 desta nova maneira:

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

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
32 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES  Exercícios

Sentenças RM Labore:

1) Listar os nomes, as chapas e os nomes dos bancos de FGTS de todos


funcionários da coligada 1, mesmo para aqueles que não tenham a
conta 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 ON
PFUNC.CODBANCOFGTS=GBANCO.NUMBANCO
WHERE PFUNC.CODCOLIGADA=1
GROUP 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.NOME


FROM PFUNC RIGHT OUTER JOIN PSINDIC ON
PFUNC.CODSINDICATO=PSINDIC.CODIGO

3) Liste os nomes, as chapas, os salários e a descrição da situação dos


funcionários. Mesmo que exista uma situação que não esteja
associada a um funcionário.

SELECT PFUNC.NOME, PFUNC.CHAPA, PFUNC.SALARIO,


PCODSITUACAO.DESCRICAO SITUACAO
FROM PCODSITUACAO LEFT OUTER JOIN PFUNC
ON 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 ordem
salarial do maior para o menor.

SELECT PFUNC.NOME, PFUNCAO.NOME FUNCAO,


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

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 33

ANOTAÇÕES MÓDULO 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 conta


caixa, que deverá ser fornecida pelo usuário no momento da
execuçã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 FCXA
WHERE FCXA.CODCXA = :ContaCaixa

2) Selecionar o código do cliente, o nome fantasia, a data de


vencimento do lançamento e valor original. Use parâmetros para
solicitar a digitação da data de vencimento a ser listada.

SELECT FLAN.CODCFO, FCFO.NOMEFANTASIA,


FLAN.DATAVENCIMENTO, FLAN.VALORORIGINAL
FROM FLAN, FCFO
WHERE FLAN.CODCOLIGADA=FCFO.CODCOLIGADA AND
FLAN.CODCFO=FCFO.CODCFO AND
FLAN.DATAVENCIMENTO=:VENCIMENTO

3) Criar uma sentença que retorne o somatório do saldo instantâneo e


saldo não compensado, de uma determinada conta caixa. E liste
também o código desta conta e sua descrição. Utilize parâmetro para
solicitar a informação do código da conta caixa a ser listada. Dê um
nome para a coluna que apresentará o somatório.

SELECT FCXA.CODCXA, FCXA.DESCRICAO,


(FCXA.SALDOINSTANTANEO+FCXA.SALDONAOCOMPENSADO)
SALDO_PREVISTO
FROM FCXA
WHERE FCXA.CODCXA=:CODIGO

4) Relatório de pagamentos a receber. Contendo: número do


documento, data de vencimento e valor original, dos lançamentos
com vencimento partir de 01/01/2005.

SELECT FLAN.NUMERODOCUMENTO DOCUMENTO,


FLAN.DATAVENCIMENTO, FLAN.VALORORIGINAL
TOTAL_A_RECEBER
FROM FLAN
WHERE CODCOLIGADA=1 AND PAGREC='1'AND
FLAN.DATAVENCIMENTO>'01/01/2005'

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
34 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES 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 e
fornecedor.

SELECT FCFO.CODCFO, FCFO.NOME, FCFO.CGCCFO, FCFO.RUA,


FCFO.NUMERO, FCFO.TELEFONE FROM FCFO
ORDER BY FCFO.CODCFO

6) Retornar o nome do cliente ou fornecedor, estado e telefone. Utilize o


recurso de parâmetros para solicitar a digitação do estado a ser
listado.

SELECT FCFO.NOME, FCFO.CODETD, FCFO.TELEFONE


FROM FCFO
WHERE FCFO.CODETD =:ESTADO

7) Listar o nome do cliente, data de vencimento, histórico de


lançamento e valor original do lançamento. Ordenando pelo nome do
cliente, 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, FLAN
WHERE FLAN.CODCOLCFO = FCFO.CODCOLIGADA AND
FLAN.CODCFO = FCFO.CODCFO AND
FLAN.PAGREC=1 AND
FLAN.STATUSLAN=1 AND
FLAN.CODCOLIGADA=1 AND FLAN.CODFILIAL=1
ORDER BY FCFO.NOME, FLAN.DATAVENCIMENTO,
FLAN.VALORORIGINAL

8) Listar o nome do fornecedor, data de vencimento, histórico de


lanç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.HISTORICO
FROM FCFO, FLAN
WHERE FLAN.CODCOLCFO = FCFO.CODCOLIGADA AND
FLAN.CODCFO = FCFO.CODCFO AND
FLAN.PAGREC=2 AND
FLAN.STATUSLAN=1 AND
FLAN.CODCOLIGADA=1 AND FLAN.CODFILIAL=1
ORDER BY FCFO.NOME, FLAN.DATAVENCIMENTO,
FLAN.VALORORIGINAL

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 35

ANOTAÇÕES Sentenças RM Saldus

1) Selecionar o código do lote, o número do documento, a conta de


cré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.DATALIBERACAO
FROM CLANCA
WHERE CLANCA.CODLOTE<>0
ORDER BY CLANCA.CODLOTE

2) Retornar o código da conta contábil, código reduzido da conta


contábil e descrição. Somente das contas analíticas, ordenadas pelo
código Contábil.

SELECT CODCONTA, REDUZIDO, DESCRICAO


FROM CCONTA
WHERE ANALITICA='1'
ORDER BY CODCONTA

3) Retornar o código da filial, número do documento, data do


lançamento, conta débito, conta crédito e valor. Ordenando pela data
do lançamento.

SELECT CLANCA.CODFILIAL, CLANCA.DOCUMENTO,


CLANCA.DATA, CLANCA.DEBITO, CLANCA.CREDITO,
CLANCA.VALOR
FROM CLANCA
WHERE CLANCA.CODFILIAL=1
ORDER 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 FROM


PCODSITUACAO

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

SELECT PFDEPEND.CHAPA FUNCIONARIO, PFDEPEND.NOME


DEPENDENTE, PFDEPEND.SEXO
FROM 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.NOME
FROM PFUNCAO
WHERE PFUNCAO.NOME LIKE 'A%'

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
36 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES b) Listar o Nome do funcionário que possui o menor salário e o nome


do funcionário que possui o maior salário.

SELECT PFUNC.NOME, PFUNC.SALARIO FROM PFUNC


WHERE PFUNC.SALARIO=
(SELECT MAX(PFUNC.SALARIO)FROM PFUNC) UNION
SELECT PFUNC.NOME, PFUNC.SALARIO FROM PFUNC
WHERE 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.SALARIO


FROM PFUNC
WHERE SALARIO=(SELECT MAX(PFUNC.SALARIO) FROM
PFUNC)

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

SELECT PFUNC.NOME, PFUNC.CODSECAO, PFUNC.SALARIO


FROM PFUNC
WHERE SALARIO=(SELECT MIN(PFUNC.SALARIO) FROM
PFUNC)

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

SELECT PFUNC.CODFILIAL, AVG(SALARIO) MEDIA FROM


PFUNC
WHERE PFUNC.CODFILIAL=1 OR PFUNC.CODFILIAL=2
GROUP BY PFUNC.CODFILIAL
HAVING 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 CODSECAO
FROM PFUNC
WHERE CODCOLIGADA = 1 AND SALARIO > 100
GROUP BY CODSECAO
HAVING MAX(SALARIO) < 1000 AND MIN(SALARIO) >=200
ORDER BY MIN(SALARIO)

( f ) Esta consulta está errada, porque não se pode ter a Cláusula


HAVING antes do ORDER BY.
( f ) Esta consulta está errada, porque não se pode fazer mais de
uma comparação na cláusula HAVING.
( f ) Esta consulta está errada, pois não é possível utilizar na
mesma sentença a cláusula WHERE e HAVING.
( v )Esta consulta está correta, o Having pede um GROUP BY, o
mesmo está trazendo o campo certo de agrupamento.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 37

ANOTAÇÕES 6) A consulta abaixo está correta? Se não, por favor, conserte-a no


espaço abaixo e indique onde se encontram os erros.

SELECT AVG(SALARIO), NOME


FROM PFUNC, GFILIAL
GROUP BY NOME
HAVING AVG(SALARIO)>500

SELECT AVG(PFUNC.SALARIO), GFILIAL.NOME


FROM PFUNC, GFILIAL
WHERE GFILIAL.CODCOLIGADA=PFUNC.CODCOLIGADA AND
GFILIAL.CODFILIAL=PFUNC.CODFILIAL
GROUP BY GFILIAL.NOME
HAVING AVG(SALARIO)>500

7) A consulta abaixo está correta? Se não, por favor, conserte-a no


espaço abaixo e indique onde se encontram o(s) erros.

SELECT COUNT(P.CHAPA), F.NOME


FROM PFUNC P, PFUNCAO F
WHERE P.CODFUNCAO=F.CODIGO AND P.CODCOLIGADA=
F.CODCOLIGADA
GROUP BY F.NOME
HAVING CHAPA LIKE '0001%'
ORDER BY F.NOME

SELECT COUNT(P.CHAPA), F.NOME


FROM PFUNC P, PFUNCAO F
WHERE P.CODFUNCAO=F.CODIGO AND
P.CODCOLIGADA=F.CODCOLIGADA
GROUP BY F.NOME
ORDER 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 FUNCIONARIO


FROM PCARGO, PFUNC, PFUNCAO
WHERE PCARGO.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND
PCARGO.CODIGO=PFUNCAO.CARGO AND
PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA AND
PFUNCAO.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 FROM


PFUNC, PCODSITUACAO
WHERE PFUNC.CODSITUACAO=PCODSITUACAO.CODCLIENTE
AND
PCODSITUACAO.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, PFUNC
WHERE PFUNCAO.CODCOLIGADA=PFUNC.CODCOLIGADA AND
PFUNCAO.CODIGO=PFUNC.CODFUNCAO AND
PFUNC.CODCOLIGADA=PSECAO.CODCOLIGADA AND
PFUNC.CODSECAO=PSECAO.CODIGO AND
PSECAO.DESCRICAO LIKE 'COM%'

11) Selecione todos os nomes dos funcionários, exceto os que têm o


nome começando com a letra A.
SELECT PFUNC.NOME FROM PFUNC
WHERE PFUNC.NOME NOT LIKE 'A%'

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
38 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Sentenças RM Nucleus

1) Selecionar os clientes que não possuem movimentação, a partir de


uma data fornecida pelo usuário. Utilize parâmetros para solicitar a
digitação das datas. Os campos a serem listados são: Código do
cliente, 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 NULL
AND
DATAMOVIMENTO>=:DATAINI_D AND DATAMOVIMENTO
<=:DATAFIM_D)

2) Criar uma sentença para retornar a quantidade de produtos por local


de estoque. Lembrando que o local de estoque está associado a uma
filial. Apresente os resultados por ordem de filial.

SELECT F.NOMEFANTASIA FILIAL, P.CODIGOPRD CODIGO,


P.NOMEFANTASIA PRODUTO, SUM(L.SALDOFISICO2 )
SALDO_FISICO
FROM TPRDLOC L, TPRD P, GFILIAL F
WHERE L.CODCOLIGADA=1 AND
L.CODCOLIGADA=P.CODCOLIGADA AND L.IDPRD=P.IDPRD AND
F.CODCOLIGADA=L.CODCOLIGADA AND
F.CODFILIAL=L.CODFILIAL
GROUP BY F.NOMEFANTASIA, P.CODIGOPRD, P.NOMEFANTASIA
ORDER BY F.NOMEFANTASIA

3) Criar uma sentença que retorne os dados do Contrato do cliente


C00001. Os dados a serem listados são: Código do contrato, nome
fantasia do cliente, valor do contrato, data de início e data de fim de
contrato. Utilize o recurso de alias (apelido) para nomear os campos
(colunas) a serem exibidos.

SELECT CODIGOCONTRATO CONTRATO, CF.NOMEFANTASIA


CLIENTE,
VALORCONTRATO VALOR, T.DESCRICAO TIPO, DATAINICIO
INICIO, DATAFIM FIM
FROM TCNT C, TTCN T, FCFO CF WHERE C.CODCOLIGADA=1
AND
C.CODCOLIGADA=T.CODCOLIGADA AND
T.CODCOLIGADA=CF.CODCOLIGADA AND
C.CODTCN=T.CODTCN AND C.CODCFO=CF.CODCFO
AND CF.CODCFO='C00001'
ORDER BY CODIGOCONTRATO

4) Selecione os itens do movimento, a partir de uma data fornecida pelo


usuário, apresentando os seguintes dados: código do produto, nome
fantasia do produto, quantidade, unidade, preço unitário e data de
emissão do movimento. Utilize o recurso de parâmetros, para
solicitar 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.DATAEMISSAO
FROM TITMMOV I, TPRD P WHERE I.CODCOLIGADA=1 AND
I.CODCOLIGADA=P.CODCOLIGADA AND I.IDPRD=P.IDPRD AND
I.DATAEMISSAO>= :DATA_INICIAL AND I.DATAEMISSAO
<= :DATA_FINAL

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 39

ANOTAÇÕES MÓDULO 6
Conceito
BI (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ítico
Online).
„ O sistema tem recursos visuais para análise de informações
atravé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 seguida


aponte 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: mestre
Senha: rm sistemas

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
40 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Janela de Visão do Aplicativo

Menu Cadastros

Neste menu constam todas as tabelas globais, comuns aos aplicativos do


CORPORE RM, e o cadastro de Tipos de Cubo que é exclusivo do RM BIS.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 41

ANOTAÇÕES Cadastros / Tipos de Cubos

Para armazenamento dos cubos criados e direcioná-los ao sistema cor-


respondente. Existem alguns tipos de cubos que são previamente
cadastrados pela RM Sistemas, além destes, o usuário poderá cadastrar
novos tipos, a fim de obter uma melhor classificação para os mesmos.

Exemplo:
Prefixo: RH
Descriçã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ão
disponíveis no submenu: RELATÓRIOS / CUBOS (EIS) / CUBOS
DO USUÁRIO.

Relatórios / Cubos (EIS)

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


empresarial.

Neste menu, serão visualizados todos os cubos criados e será permitido


criar 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 barra


de ferramentas.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
42 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Observações:
„ Cubos do usuário
O usuário poderá criar um tipo de cubo personalizado.
„ Cubos customizados
Criados pela RM Sistema, através de customização, para a
atender 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ão
de acesso ao menu, no cadastro de segurança, pasta perfis. E
efetuar logout/login.

2) Depois de criado, o cubo poderá ser visualizado no menu: RELATÓRIOS /


CUBOS (EIS) / CUBOS DO USUÁRIO.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 43

ANOTAÇÕES 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 uma


sentença já criada anteriormente. No nosso exemplo utilizaremos uma
sentença simples digitada diretamente nesta janela. Clique no botão
“Avançar”.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
44 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES 5) Depois de selecionados os campos, será necessário determinar onde os


mesmos serão visualizados no cubo. Selecione o campo e o arraste para:
Área de consulta, linhas de consulta, colunas de consulta ou campos de
dados. 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

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 45

ANOTAÇÕES 6) O próximo passo é configurar os campos do Cubo, conforme ilustra a


figura a seguir:

Nesta etapa configure o texto a ser apresentado em cada dimensão, e no


caso das dimensões das áreas de dados, configure a máscara dos valores a
serem apresentados.

Texto
Informe uma descrição para o campo selecionado.

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

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

Máscara
Selecione uma máscara para o campo selecionado. Só estará disponível
para "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 com
separador de milhar;
Percentual (0.00%) Visualiza o percentual correspondente ao valor total.
Reais (#.##0,00) Visualiza o valor com N casas decimais e separador
de milhar;
N° casas decimais Permite determinar a quantidade de casas decimais.

Observação:
A determinação do número de casas decimais só terá efeito
sobre campos da base de dados que suportarem a mesma
quantidade de casas decimais escolhida. Com isso se o usuário
escolher uma quantidade de casas decimais acima da
quantidade suportada pelo campo, esta será preenchida com o
algarismo zero.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
46 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Exemplo:
O usuário deseja montar um cubo para visualizar o nome e o
salário com três casas decimais para cada funcionário da
empresa. O campo salário na base de dados foi criado com duas
casas 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.SALARIO
FROM PFUNC

Ordenar de acordo com o campo


Define que a ordenação será baseada nos valores do campo escolhido.

Ascendente
Permite selecionar se a ordenação do campo será feita de forma ascendente
ou descendente. Se esta opção estiver desmarcada, a ordenação do campo
será descendente.

Observação:
Ao preencher o campo "Ordenar de acordo com o campo" para
diversos campos, principalmente ordenando de forma
ascendente 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 esta
relacionado e se o mesmo será gravado no próprio banco de dados ou em
arquivo.

No caso da gravação em arquivo o caminho default (padrão) é


C:\CORPORERM\CUBOS. Mas, será possível definir um outro caminho
caso seja necessário. Após as definições necessárias clique no botão
"Avançar".

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 47

ANOTAÇÕES 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 do
cubo, tais como: sentença SQL, áreas e linhas de consulta, etc.

Associar Variáveis;
Permite definir as variáveis que poderão ser utilizadas em
determinados 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.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
48 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Editando Cubos

Pasta Cubo de Decisão

Nesta pasta, será feita a análise dos dados registrados no banco de dados
CORPORE 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 à sua
consulta.

Í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ório
e o título do cabeçalho.

Visualizar / Imprimir Cubo;

Exportar para o MS - Excel;

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 49

ANOTAÇÕES 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 em
planilhas eletrônicas ou gerenciadores de bancos de dados.

Exportar Cubo;
Permite exportar o cubo para o formato off-line (.cub). Informe um
nome 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.

Linhas de Consulta

Área de Dimensões
Colunas de Consulta

Área de Dados
Área de Registros
.

Áreas de Divisão do Cubo

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

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

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

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

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
50 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Área de Registros


Apresenta os dados obtidos através da consulta ao Banco de Dados
do CORPORE RM, organizados de acordo com as Linhas de
Consulta.

Área de Dados
Apresenta os dados obtidos através da consulta ao Banco de Dados
do CORPORE RM, organizados de acordo com a Área de Registros e
com as Colunas de Consulta.

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

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

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 51

ANOTAÇÕES Alterando a Dimensão da Análise dos Dados

A disposição das dimensões influencia a análise dos dados. Alterando uma


dimensã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 de
Custos 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 RM
Sistemas. 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 que


deseja 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 que


deseja remover e, arraste-a para uma posição na área de Dimen-
sões.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
52 CORPORE RM / RM Bis - Versão 6.0.2

ANOTAÇÕES Para Alterar a posição de uma Dimensão da Área de Consulta

„ Na área de Consulta, posicione o mouse sobre a dimensão que


deseja mover e arraste-a para outra posição desta área. Uma
dimensão pode ser movida entre as posições da linha/coluna, ou
pode 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 ou


Nã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 na


pasta 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 de
gráfico: barras, pizza, linhas, área, etc.
Bem como a dimensão: 3D ou 2D, o
local onde será exibida a legenda e a
digitação do título do gráfico.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 53

ANOTAÇÕES Para aumentar/diminuir a escala do gráfico, selecione as faixas que


definirão o gráfico.

Exemplo:
Para aumentar a escala de uma faixa, selecione a faixa. Todas as
outras faixas desaparecerão da área visualizada e, apenas a faixa
selecionada será visualizada. Para voltar novamente a visualizar
todas 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ção


e filial.

Para a Linha de Consulta: Mês e Nomedespesa

Para Campos de Dados: Valor.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
54 CORPORE RM / RM Bis - Versão 6.0.2

ANEX O
CORPORE RM R ecursos Humanos
RM Labore (Folha de Pagamento)
Objetivo:
Capacitação dos profissionais ligados às atividades do Departamento Pessoal (movimentação
da folha de pagamento)
Conteúdo:
„ Parâmetros de Cálculo do Sistema
„ Movimentaçã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 Humanos
nos 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 Humanos
nos 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.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 55

CORPORE RM R ecursos 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, horas
extras, controle de carência de atraso, extra autorizado, feriados, compensação de atrasos, faltas e
Banco 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, com
compensaçã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 Saldus
„ Histórico Padrão
„ Plano de Contas Contábeis
„ Plano de Contas Gerenciais
„ Encargos Contábeis
„ Agrupamento de Contas Contábeis
„ Agrupamento de Contas Gerenciais
„ Histórico Provisões
„ Histórico Encargos
„ Lançamentos Contábeis
„ Contabilização por Funcionário
„ Contabilização por Seção
„ Contabilização por Centro de Custo

CORPORE 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 para
uso e Consumo e Outros).
„ Reajuste de Preços
„ Grade 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édito
„ Retrospectiva de Saldos Centro de Custos/Contábil - Relatórios
„ Manutenção de Lotes
„ Lançamentos Automáticos
„ Geração de Lançamentos Automáticos
„ Orçamentos (Manutenção de Orçamentos e Zerar Orçamentos).
„ Acompanhamento Orçamentário - Relatório
„ Transferências de Grupos Contábeis
„ Instrução Normativa
„ Liberação do Período
„ Relatórios (Listagens de Lançamentos, Plano de Contas, Balancete, Razão, Livro Diário, etc).

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
56 CORPORE RM / RM Bis - Versão 6.0.2

CORPORE RM Administrativo
RM Liber (Escrituração Fiscal)
Objetivo:
Capacitação do usuário nas movimentações Fiscais.
Conteúdo:
„ Lançamentos
„ Períodos de Apuração
„ Manutenção de Lançamentos de Entradas, Saídas e Outros Débitos/Créditos
„ Lançamentos em Lotes
„ Rotinas 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 Fiscais
„ Emissã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 e
tesouraria.
Conteúdo:
„ Manutenção de Lançamentos (Inclusão, Alteração, Exclusão, Cancelamento, Baixa, Alteração
Globais, etc).
„ Fluxo de Caixa
„ Faturar Lançamentos
„ Cheques
„ Extrato de Caixa
„ Aplicaçã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 Bens
„ Cadastro de Ocorrências e Ocorrências Automáticas.
„ Movimentações (Cálculo Nova Tabela de Índice, Recálculo para 2ª Moeda, Recálculo Geral e
Alteraçã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 e
Contábil.
Conteúdo:
„ Parametrização dos Tipos de Movimentos para integração Financeira e Contábil no RM Nucleus
„ Parametrização da integração contábil no RM Fluxus
„ Cadastro de Eventos Contábeis
„ Cadastro dos defaults contábeis

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
CORPORE RM / RM Bis - Versão 6.0.2 57

CORPORE RM P rojetos
RM Solum (Gerenciamento de Obras e Projetos)
Objetivo:
Capacitação do Usuário para utilização de diversos setores da Empresa na elaboração de
Orçamentos, Planejamento e Acompanhamento de Projetos.
Conteúdo:
„ Elaboração de um Orçamento Completo
„ Cotaçã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 Desembolso
„ PERT - (Técnica de Avaliação e Revisão de Programas)
„ Integração com o MS Project/Excel
„ Apropriação de Insumos/Composição
„ Medição (Reajuste, Realinhamento, Retenções/Adiantamentos) de Contratos.
„ Aditivos de Contratos
„ Medição Via PALM
„ Concorrência Eletrônica

CORPORE RM Educacional
RM Classis (Gestão Educacional)
Objetivo:
Capacitação dos profissionais ligados às atividades de Secetaria e Tesouraria da instituição de
ensino.
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 P rodução
RM Factor (Planejamento e Controle da Produção)
Objetivo:
Auxiliar a montagem da linha de produção, da engenharia do produto, o seqüenciamento das
etapas 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 controle
de processos e gerenciamento minucioso de rotinas administrativas
„ Avaliação de desempenho e correção de desvios
„ Dimensionamento 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ítico
„ Fornecimento de informações detalhadas, com ágil atendimento ao cliente, fácil
„ Cumprimento de prazos e garantia de qualidade dos serviços prestados
„ Controle de manutenção preventiva e corretiva
„ Acompanhamento de ordens de serviço
„ Integração com Faturamento e Recursos Humanos
„ Acompanhamento de índices de produtividade / serviços
„ Total controle da inadimplência

CORPORE RM Manutenção
RM 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 e
manutenções em geral.
Conteúdo:
„ Operações (Manutenção/Movimentos, Agendamento de Serviços, Status da Oficina, Contratos de
Manutenção, Acompanhamento de Processos, Propostas, Análise de Movimentos, Problemas,
Atendimento, etc)
„ Mão-de-Obra (Cronograma Pessoal, Desempenho Individual, Desempenho Mensal, Acompanhamento
na Oficina e Ocupação de Mão-de-Obra, etc) análises através de gráficos e relatórios.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida
Consultas SQL à base
58 CORPORE RM / RM Bis - Versão 6.0.2

Geradores de R elatórios e Consultas à Base de Dados


Gerador 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 na
criaçã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 RM
Bis.
Conteúdo:
Bancos de Dados e SGBD’S
„ Tabelas
„ Chaves primárias
„ Chaves Estrangeiras
„ Sistemas Gerenciadores de Bancos de Dados Utilizados Atualmente na RM (Relacionais e Tecnologia
Cliente/Servidor)
„ Bancos de Dados Cliente/Servidor
„ Distribuição dos Softwares na Rede (CORPORE RM )
„ Nomeclatura das Tabelas do CORPORE RM
„ Tipos de Dados
„ Relacionamento 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 SELECT
„ Funções de Agrupamento ou Embutidas
„ Cláusula WHERE
„ Exemplos de consulta com os Operadores de Comparação
„ Cláusula GROUP BY
„ Cláusula ORDER BY
„ Cláusula HAVING
„ Cláusula UNION
„ Alias de Coluna (Apelidos)
„ Passagem de Parâmetros
RM Bis
„ Parâmentros
„ Criação de Cubos
„ Manutenção de Cubos
„ Aná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 RM
Fluxus.
Conteúdo:
„ Formatação de Relatórios
„ Definiçã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.

Treinamentos RM: caminho certo para o sucesso profissional


Reprodução Proibida

Você também pode gostar