Arquivos de Tag: Select

Banco de Dados I – Aula 14C

EXERCÍCIOS: Utilize o Schema HR do Oracle para resolver os problemas abaixo:

hr

1 – Selecione todos os ids, nomes e sobrenomes de empregados, que estejam nas faixas de salários de 0 a 2000 e maiores ou iguais a 5000. Dê 3 tipos de consultas para resolver esse problema)

2 – Selecione todos os ids e nomes de departamentos, o id do gerente do departamento que estejam nos id de locais entre 1500 a 2000;

3 – Selecione todos os nomes de departamentos e nomes dos gerentes de departamentos onde a cidade de localização seja Sao Paulo (faça pela antiga e nova sintaxa. Se possível, resolva também em algebra relacional)

4 – Selecione todos os ids, nomes e sobrenome de empregados que possuem salario maior que 5000 (Dê duas soluções para este problema. Se possível, resolva também em algebra relacional)

5 – Selecione todos ids, nomes e sobrenomes (como um único campo – nome completo) de empregados, a data de admissao (hire date),data de inicio e fim (end_date) dos determinados serviços (jobs). Obs: um empregado pode ter trabalhado em mais de um servico em um período de tempo; (Dê 2 soluções para esse problema. Se possível, resolva também em algebra relacional)

6 – Selecione todos o nome da região, o nome do pais que os nomes de paises iniciem com as letras A,B,J (Dê 2 soluções para esse problema. Se possível, resolva também em algebra relacional)

7 – Selecione todos os id´s e nomes dos gerentes, ids e nomes de departamentos gerenciados por esses gerentes. (De 3 soluções para esse problema)

8 – Selecione todos os ids e nomes de departamentos, a qual não possuem nenhum empregado alocado (dê 2 soluções para esse problema);

9 – Selecione todos os ids e nomes de empregados, o nome do departamento, o nome do pais e o nome da região, onde as regiões devem ser iguais a Europe e Asia (dê 3 soluções para esse problema);

Vídeo 01

 

Anúncios

Concatenação de uma única linha com origem de várias linhas retornadas em T-SQL

É possível utilizar o recurso em T-SQL para que várias linhas retornadas em uma select sejam concatenadas em uma única.

O cenário utilizado foi por exemplo, em impressão de etiquetas, que um produto produzido foi consumido x produtos com y quantidades.

Utilizamos no exemplo o Banco de Dados AdventureWorks2008 do SQL Server, a qual pode ser adaptado facilmente para qualquer versão que voce esteja utilizando.

Select P.Name
       +' - Tkg '+ SOD.CarrierTrackingNumber
       +' - Qty '+ CONVERT(VARCHAR, SOD.OrderQty)
       +' - Prc '+ CONVERT(VARCHAR, SOD.UnitPrice)
From   Sales.SalesOrderDetail SOD
         inner join Production.Product P
           on P.ProductID = SOD.ProductID
Where SalesOrderID = 43664

O seguinte resultado irá aparecer, sendo um resiltado simples que já estamos acostumados.

ScreenHunter_334 Jul. 25 10.43

O problema é que o gerador de relatório estava interpretando que cada linha do SQL estava sendo colocado um uma folha. Para isso, precisávamos colocar todas as linhas retornadas em uma única (como se fosse uma única string). Para isso, executamos o seguinte comando:

Select STUFF((SELECT DISTINCT ' ' +
		P.Name  
		+' - Tkg '+ SOD.CarrierTrackingNumber 
	  	+' - Qty '+  CONVERT(VARCHAR, SOD.OrderQty) 
		+' - Prc '+  CONVERT(VARCHAR, SOD.UnitPrice) + CHAR(10)
From Sales.SalesOrderDetail SOD
	inner join Production.Product P
		on P.ProductID = SOD.ProductID
Where SalesOrderID = 43664
FOR XML PATH('')),1,1,'')

O seguinte resultado foi apresentado:

ScreenHunter_335 Jul. 25 10.44

Precisamos colocar o CHAR(10) para que o gerador de relatório interpresse esse código como <Enter>, colocando assim cada uma das linhas em uma linha separada no relatório (diferente do retorno de várias linhas do SQL).

Dessa forma, fizemos que esse campo retornasse um MEMO para o gerador de relatório.

 

 

 

Exercícios de SQL no Oracle utilizando o Schema HR

Feita uma lista de exercícios para resolução com joins, para que a mesma fosse resolvida.

Utilize o Schema HR do Oracle para resolver os problemas abaixo:

1 – Selecione todos os ids, nomes e sobrenomes de empregados, que estajam nas faixas de salários de 0 a 2000 e maiores ou iguais a 5000. De 3 tipos de consultas para resolver esse problema)

2 – Selecione todos os ids e nomes de departamentos, o id do gerente do departamento que estejam no id de locais entre 1500 a 2000;

3 – Selecione todos os nomes de departamentos e nomes dos gerentes de departamentos onde a cidade de localização seja Sao Paulo (faça pela antiga e nova sintaxe. Se possível, resolva também em algebra relacional)

4 – Selecione todos os ids, nomes e sobrenome de empregados que possuem salario maior que 5000 (Dê duas soluções para este problema. Se possível, resolva também em algebra relacional)

5 – Selecione todos ids, nomes e sobrenomes (como um único campo – nome completo) de empregados, a data de admissao (hire date),data de inicio e fim (end_date) dos determinados serviços (jobs). Obs: um empregado pode ter trabalhado em mais de um servico em um período de tempo; (Dê 2 soluções para esse problema. Se possível, resolva também em algebra relacional)

6 – Selecione todos o nome da região, o nome do pais que os nomes de paises iniciem com as letras A,B,J (Dê 2 soluções para esse problema. Se possível, resolva também em algebra relacional)

7 – Selecione todos os id´s e nomes dos gerentes, ids e nomes de departamentos gerenciados por esses gerentes. (De 3 soluções para esse problema)

8 – Selecione todos os ids e nomes de departamentos, a qual não possuem nenhum empregado alocado (dê 2 soluções para esse problema);

9 – Selecione todos os ids e nomes de empregados, o nome do departamento, o nome do pais e o nome da região, onde as regiões devem ser iguais a Europe e Asia (dê 3 soluções para esse problema);

WikiDBA

by Virendra Yaduvanshi - Microsoft SQL Server Database Architect | Consultant | Blogger | Specialist | DBA | Speaker

Blog - Fabiano Neves Amorim

SELECT * FROM [Coisas Da Minha Cabeça] WHERE dbo.fn_TempoParaPost() < dbo.fn_TempoLivre()

ROMANO DBA

Administração de Bancos de Dados

Tércio Costa, Oracle Developer, OCE SQL

Guia de estudos para certificação ORACLE SQL Expert(1Z0-047) e PL/SQL(1Z0-144)

Strate SQL

Data Adventures with an Architect