-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExercicio cap 11.sql
96 lines (80 loc) · 2.47 KB
/
Exercicio cap 11.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
USE ImovelNet
--Fazendo a união entre as entidas comprador e vendedor e mostrando o código e o nome
SELECT CDCOMPRADOR, NMCOMPRADOR
FROM COMPRADOR
UNION
SELECT CDVENDEDOR, NMVENDEDOR
FROM VENDEDOR
--Fazendo a união entre as entidades comprador e vendedor e mostrando o código e o nome
SELECT CDCOMPRADOR, NMCOMPRADOR
FROM COMPRADOR
UNION ALL
SELECT CDVENDEDOR, NMVENDEDOR
FROM VENDEDOR
--Fazendo a união entre as entidades vendedor, imóvel, comprador e oferta e mostrando o nome do vendedor e o endereço do imóvel do comprador 2 e os imóveis do bairro 1
SELECT a.NMVENDEDOR, b.NMEDERECO
FROM VENDEDOR a, IMOVEL b, COMPRADOR c, OFERTA d
WHERE a.CDVENDEDOR = b.CDVENDEDOR
AND b.CDIMOVEL = d.CDIMOVEL
AND d.CDCOMPRADOR = c.CDCOMPRADOR
AND c.CDCOMPRADOR = 2
UNION ALL
SELECT a.NMVENDEDOR, b.NMEDERECO
FROM VENDEDOR a, IMOVEL b, COMPRADOR c, OFERTA d
WHERE a.CDVENDEDOR = b.CDVENDEDOR
AND b.CDIMOVEL = d.CDIMOVEL
AND d.CDCOMPRADOR = c.CDCOMPRADOR
AND b.CDBAIRRO = 1
--Fazendo a excessão das entidades comprador e oferta e mostrando o código do comprador que não fez oferta
SELECT CDCOMPRADOR
FROM COMPRADOR
EXCEPT
SELECT CDCOMPRADOR
FROM OFERTA
--Fazendo a excessão das entidades vendedor e imóvel e mostrando o código do vendedor que não tem imóvel
SELECT CDVENDEDOR
FROM VENDEDOR
EXCEPT
SELECT CDVENDEDOR
FROM IMOVEL
--Fazendo a intersecção das entidades vendedor e imóvel e mostrando o código do vendedor que tem imóvel
SELECT CDVENDEDOR
FROM VENDEDOR
INTERSECT
SELECT CDVENDEDOR
FROM IMOVEL
--Fazendo a intersecção das entidades comprador e oferta e mostrando o código do comprador que fez a oferta
SELECT CDCOMPRADOR
FROM COMPRADOR
INTERSECT
SELECT CDCOMPRADOR
FROM OFERTA
--Fazendo os casos de desconto no preço dos imóveis utilizando a claúsula CASE
SELECT
CDIMOVEL,
NMEDERECO,
CASE
WHEN VLPRECO > 100000 THEN VLPRECO * 0.9
WHEN VLPRECO > 50000 AND VLPRECO <= 100000 THEN VLPRECO * 0.95
WHEN VLPRECO > 30000 AND VLPRECO <= 50000 THEN VLPRECO * 0.97
ELSE VLPRECO
END AS DESCONTO
FROM
IMOVEL;
--Fazendo o caso de STATUS do imóvel utilizando a claúsula CASE
SELECT
NMEDERECO,
CDVENDEDOR,
CASE
WHEN STVENDIDO = 'S' THEN 'VENDIDO'
ELSE 'DISPON�VEL'
END AS STATUS
FROM IMOVEL;
--Fazendo os caso de Tipo dos imóveis utilizando a claúsula CASE
SELECT
CDCOMPRADOR,
CASE
WHEN DTOFERTA < CURRENT_DATE - 30 THEN 'ANTIGA'
ELSE 'NOVA'
END AS TIPO
FROM OFERTA;