Guia de Gestão de Projetos e SQL Server: Práticas e Queries
Gestão de Projetos e Operações
Escritório de Projetos (PMO): É um departamento da empresa responsável por garantir que todos os projetos sigam as “boas práticas” estabelecidas para o gerenciamento. A vantagem é a padronização, que permite comparar projetos diferentes com uma base única (de documentos a custos).
Projeto: É uma sequência bem definida de tarefas com início e fim, conduzida por pessoas dentro de parâmetros como tempo (prazo), custo (orçamento), recursos e qualidade. Um projeto entrega um produto ou serviço único; se for repetitivo, trata-se de produção.
Gráfico de Confiabilidade: Demonstra que, à medida que o tempo aumenta, a probabilidade de falha também cresce.
Curva ABC: Instrumento para examinar estoques, identificando itens que justificam atenção especial. Classifica produtos em A, B e C conforme o valor ou quantidade.
Como classificar materiais em classes?
- A: Maior importância, valor correspondendo a 20% do total.
- B: Importância intermediária, correspondendo a 30% do total.
- C: Menor importância, correspondendo a 50% do total.
Logística: Envolve operações pós-estoque: separação, embalagem, armazenagem, transporte e entrega. Inclui o Supply Chain Management (Gerenciamento da Cadeia de Suprimentos), que abrange desde o fornecedor de matéria-prima até o pós-venda.
Logística Reversa: Conjunto de operações relacionadas ao reuso de produtos e materiais, frequentemente utilizada na assistência técnica.
Administração da Produção: Visa maximizar resultados e minimizar riscos nas decisões fabris. O gerente de produção é responsável por administrar os recursos envolvidos.
Administração e Fluxo de Caixa: A administração de caixa visa manter a liquidez imediata. O fluxo de caixa é o método de registro de fatos que alteram o saldo, permitindo a compreensão financeira. O planejamento financeiro envolve operações como empréstimos e aplicações para atingir objetivos.
Exercícios de SQL Server
1a) View vw_ExibeLocacoes:
CREATE VIEW VW_EXIBELOCACOES AS SELECT L.CDLOCACAO, L.CDRESERVA, V.DSPLACA, V.VLDIARIA FROM LOCACAO L INNER JOIN RESERVA R ON (L.CDRESERVA = R.CDRESERVA) INNER JOIN VEICULO V ON (V.CDVEICULO = R.CDVEICULO)
1b) View vw_ReservasDisponiveis:
CREATE VIEW VW_RESERVASDISPONIVEIS AS SELECT R.CDVEICULO, R.CDRESERVA, DATEDIFF(DAY, R.DTINICIO, R.DTFIM) AS DIAS FROM RESERVA R LEFT JOIN LOCACAO L ON (L.CDRESERVA = R.CDRESERVA) WHERE L.CDRESERVA IS NULL
2a) SP sp_ValorLocacao:
CREATE PROCEDURE SP_VALORLOCACAO AS BEGIN SELECT L.CDLOCACAO, SUM(V.VLDIARIA * DATEDIFF(DD, R.DTINICIO, R.DTFIM)) TOTAL FROM LOCACAO L INNER JOIN RESERVA R ON (L.CDRESERVA = R.CDRESERVA) INNER JOIN VEICULO V ON (V.CDVEICULO = R.CDVEICULO) GROUP BY L.CDLOCACAO END
2b) SP sp_VeiculosDisponiveis:
CREATE PROCEDURE SP_VEICULOSDISPONIVEIS (@QTD INT OUTPUT) AS BEGIN SET @QTD = (SELECT COUNT(*) FROM VEICULO) SET @QTD = @QTD - (SELECT DISTINCT COUNT(CDVEICULO) FROM LOCACAO L INNER JOIN RESERVA R ON (R.CDRESERVA = L.CDRESERVA)) END
3a) SP sp_ValorVariavel:
CREATE PROCEDURE SP_VALORVARIAVEL (@TIPO VARCHAR(1), @ANO INT) AS BEGIN SELECT SUM(V.VLDIARIA) AS TOTAL FROM VEICULO V WHERE V.CDTIPO = @TIPO AND V.NRANO = @ANO END
4a) SP sp_Temporario:
CREATE PROCEDURE SP_TEMPORARIO AS BEGIN SELECT * INTO #TEMP FROM VEICULO UPDATE #TEMP SET VLDIARIA = VLDIARIA * 1.20 SELECT CDTIPO, AVG(VLDIARIA) AS MEDIA FROM #TEMP GROUP BY CDTIPO END
5a) Consulta de Veículos e Clientes:
SELECT V.*, CASE WHEN R.CDRESERVA IS NULL THEN 'DISPONÍVEL' ELSE 'INDISPONÍVEL' END SITUACAO, C.DSNOME FROM VEICULO V LEFT JOIN RESERVA R ON (R.CDVEICULO = V.CDVEICULO) LEFT JOIN CLIENTE C ON (C.CDCLIENTE = R.CDCLIENTE)
Funções de Conversão
CAST: SELECT CAST('1' AS INT) + CAST('1' AS INT) --saída: 2
CONVERT: SELECT CONVERT(VARCHAR, GETDATE(), 103) --saída: 28/09/2012
SUBSTRING: SELECT SUBSTRING(CONVERT(VARCHAR, GETDATE(), 103), 7, 4) --saída: 2012