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
ANOTAÇÕES
5
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 consultas com a utilização exclusivamente da cláusula SELECT.
Treinamentos RM: caminho certo para o sucesso profissional Reprodução Proibida
6
Consultas SQL à base 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 considerado um banco de dados. Existem diversos tipos de sistemas de arquivamento 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 interação com o sistema operacional, para o gerenciamento do acesso aos arquivos, para a garantia de integridade e segurança, pelo backup e recuperação de dados e controle de concorrência. Existem diversos modelos de banco de dados, entre eles podemos citar:
modelo modelo modelo modelo
de rede; hierárquico; relacional; orientado a objetos.
Dentre este modelos vamos destacar o modelo relacional, que envolve o conceito de armazenar dados em um único “objeto” centralizador, estruturado 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
ANOTAÇÕES
7
Funcionários chapa
1001 1002 1003 1004 1005 1006
nome
João Alberto Franciso Maria Sônia Roberto
endereço
……. ……. …….. …….. ……... ……….
telefone
……...
5554444 4687999 NULL 5678900 0988855 NULL
~~~ ~~~ ~~~ ~~~ ~~~
Exemplos de tabelas: gcoligada (armazena informações referentes às empresas coligadas); 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 diferente 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 estrangeira é usada principalmente para relacionamento entre tabelas. Podemos dizer: O conjunto das colunas codcoligada, nomefantasia e nome formam a tabela 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 de dados cliente/servidor, a maioria dos bancos de dados armazenava seus dados na mesma máquina onde eram manipulados. Com o surgimento das redes locais, os bancos de dados foram 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.
SQL Server A B C
Client Application
Treinamentos RM: caminho certo para o sucesso profissional Reprodução Proibida
8
Consultas SQL à base CORPORE RM / RM Bis - Versão 6.0.2
ANOTAÇÕES
Com a difusão dos bancos de dados cliente/servidor, este problema foi superado. Isto porque, agora, ao realizar uma pesquisa em uma tabela de um banco de dados cliente/servidor, apenas o resultado da pesquisa é transferido 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
ANOTAÇÕES
9
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 RM é composta de várias tabelas relativas aos aplicativos. Para maior facilidade de manipulação dos dados, estas tabelas foram nomeadas (codificadas) de acordo com o aplicativo. Por exemplo, todas as tabelas que iniciam com a letra T, são tabelas pertencentes ao aplicativo RM Nucleus. Veja tabela a seguir:
RM RM RM RM RM RM RM RM RM RM RM RM RM RM RM RM RM RM RM RM
Sistema CHRONUS TESTIS SALDUS LIBER CLASSIS - E FLUXUS BIS AGILIS BONUM PLANOS FACTOR BIBLIOS SOLUM OFFICINA SAÚDE LABORE NUCLEUS CLASSIS - U VITAE SGI
Treinamentos RM: caminho certo para o sucesso profissional Reprodução Proibida
Código A B C D E F G H I J K L M N O P T U V X
10
Consultas SQL à base 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 gfilial.codfilial
pfunc.codcoligada pfunc.codfilial
3) psecao.codcoligada psecao.codigo psecao.codfilial
pfunc.codcoligada pfunc.codsecao pfunc.codfilial
4) psindic.codcoligada psindic.codigo
pfunc.codcoligada pfunc.codsindicato
5) gbanco.numbanco
pfunc.codbancopagto ou pfunc.codbancofgts
6) pfuncao.codcoligada pfuncao.codigo
pfunc.codcoligada pfunc.codfuncao
7) pcodsituacao.codcliente
pfunc.codsituacao
8) pcargo.codcoligada pcargo.codigo
pfuncao.codcoligada pfuncao.cargo pfuncao.codigo
pfunc.codcoligada 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
ANOTAÇÕES
11
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
1
*Codcoligada - Smallint Nome - Varchar (40) Nomefantasia - Varchar (35) 1 N
GFILIAL *Codcoligada - Smallint *Codfilial - Smallint Nome - Varchar (40) Nomefantasia - Varchar (35) 1
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
PFUNC
*Codcoligada - Smallint *Codigo - Varchar(10) Nome - Varchar (120)
N
N
PFUNCAO *Codcoligada - Smallint *Codigo - Varchar (10) #Cargo - Varchar (16) Nome - Varchar (40)
1
N 1
PFDEPEND *Codcoligada - Smallint #Chapa - Varchar (16) *Nro Depend - Smallint Nome - Varchar (30) Sexo - Varchar (1)
N
N *Codcoligada - Smallint *Chapa - Varchar (16) #Codfilial - Smallint #Codsecao - Varchar (35) #CodFuncao - Varchar (10) #Codsindicato - Varchar (10) N #Codsituacao - Char (1) #Codbancofgts - Varchar (3) #Codbancopagto - Varchar (3) Nome - Varchar (45) Salario Dataadmissao - Datetime (8) Datademissao - Datetime (8) N
Treinamentos RM: caminho certo para o sucesso profissional Reprodução Proibida
1
PCODSITUACAO
1
*Codcoligada - Smallint *Codcliente - Char (1) Descricao - Varchar (50)
GBANCO 1
*Numbanco - Varchar (3) Nome - Varchar (40)
12
Consultas SQL à base 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 executa 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 executarmos 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 é chamada 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 (ascendente)| DESC (descendente)]. Para efeitos didáticos dividiremos o comando SELECT em dois tipos de consultas: 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
ANOTAÇÕES
13
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 selecionar 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
14
Consultas SQL à base 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, índices, 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
ANOTAÇÕES
15
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 diferente 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) 2) 3) 4) 5)
COUNT; AVG; MAX; MIN; 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
16
Consultas SQL à base 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 tabela. SELECT SUM (DISTINCT SALARIO) FROM PFUNC Lista o total (soma) de salários não repetidos de todos os funcionários da tabela. 3. AVG: Calcula a média aritmética dos valores de uma coluna, os valores 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 quantidade 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
ANOTAÇÕES
17
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 precedência, descrita na lista a seguir: 1. 2. 3. 4. 5. 6. 7.
(+) Positivo, - Negativo, ~ NOT (*) Multiplicação, (/) Divisão, (%) Módulo (+) ADD e Concatenação, (-) Subtração = , <, >, =>, <=,!=, !>,!< (Comparação) NOT AND 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: 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
COMPARAÇÃO
= < > > < > = < =
! > ! < ! =
Treinamentos RM: caminho certo para o sucesso profissional Reprodução Proibida
18
Consultas SQL à base 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 quaisquer 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
ANOTAÇÕES
19
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 conjunto 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
20
Consultas SQL à base 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 informaçõ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 utilizando 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
ANOTAÇÕES
21
Alias de Coluna (Apelidos) O Alias de coluna serve para nomear (apelidar) uma coluna em uma determinada 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 funcioná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
22
Consultas SQL à base 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 à empresa? 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 funcioná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
ANOTAÇÕES
23
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áusula WHERE, necessária para se fazer a ligação entre as tabelas. É imprescindí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 colunas em que os conteúdos sejam idênticos (fazem parte das chaves primárias e estrangeiras das tabelas envolvidas). A tabela PFUNC é filha da tabela GFILIAL, pois, a coluna CODFILIAL é chave primária em GFILIAL, e, conseqü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
24
Consultas SQL à base CORPORE RM / RM Bis - Versão 6.0.2
Outro exemplo usando a opção INNER JOIN
ANOTAÇÕES
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 necessá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
ANOTAÇÕES
25
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
26
Consultas SQL à base 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 coligada ‘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 funcioná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
ANOTAÇÕES
27
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
28
Consultas SQL à base 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 pastas, 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 necessidade. Possui ampla aplicabilidade em cálculos, listagens e controles diversos que poderão estar relacionados ou não com suas tarefas diárias no sistema. 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
30
Consultas SQL à base 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 execuçã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
ANOTAÇÕES
31
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 relacionar 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 { LEFT | RIGHT | FULL } [OUTER] JOIN [ ON ] [WHERE ] 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 íntegra, 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áusula ON. Um FULL OUTER JOIN ou FULL JOIN recupera todas as linhas de ambas as tabelas, independentemente, das condições especificadas 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
32
Consultas SQL à base 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 funcioná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
ANOTAÇÕES
33
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 estrangeira? 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
34
Consultas SQL à base 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
ANOTAÇÕES
35
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
36
Consultas SQL à base 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 exclusivamente 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
ANOTAÇÕES
37
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 coligada 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
38
Consultas SQL à base 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
ANOTAÇÕES
39
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
40
Consultas SQL à base 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
ANOTAÇÕES
41
Cadastros / Tipos de Cubos Para armazenamento dos cubos criados e direcioná-los ao sistema correspondente. 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
42
Consultas SQL à base CORPORE RM / RM Bis - Versão 6.0.2
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.
ANOTAÇÕES
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
ANOTAÇÕES
43
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
44
Consultas SQL à base 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
ANOTAÇÕES
45
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 separador de milhar;
casas
decimais
e
com
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
46
Consultas SQL à base 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
ANOTAÇÕES
47
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 determinados cubos, podendo variar de usuário para usuário.
em
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
48
Consultas SQL à base 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 atualizadas 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
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.
ANOTAÇÕES
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
.
Área de Registros
Colunas de Consulta
Área de Dados
Á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
50
Consultas SQL à base 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
ANOTAÇÕES
51
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 registros, 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 detalhada. Anteriormente, a análise era baseada em todos os pagamentos/recebimentos de cada filial, pertencente à coligada RM Sistemas. Agora a análise está baseada em todos os pagamentos/recebimentos de cada Centro de Custo, de cada filial pertencente à 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 Dimensões.
Treinamentos RM: caminho certo para o sucesso profissional Reprodução Proibida
52
Consultas SQL à base 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
ANOTAÇÕES
53
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 visualizada.
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
54
Consultas SQL à base 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
56
Consultas SQL à base 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 diferentes 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
58
Consultas SQL à base 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