-
Notifications
You must be signed in to change notification settings - Fork 0
/
Consultas Nivel avanzado Part 2.sql
94 lines (74 loc) · 2.71 KB
/
Consultas Nivel avanzado Part 2.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 Negocios
go
-----Combinacion de tablas
--Join
select PD.NomProducto,
PD.PrecioUnidad,
CA.NombreCategoria
from Compras.productos PD join Compras.proveedores PV
on PD.IdProveedor = PV.IdProveedor join Compras.categorias CA
on PD.IdCategoria = CA.IdCategoria
go
--Se recomienda utilizar de este modo por que cuando tienen una enorme cantidad de datos
select NomProducto ,IdProveedor,IdCategoria from Compras.productos
select NomProveedor,IdProveedor from compras.proveedores
select IdCategoria from Compras.categorias
--usando where (No recomendado) --Se recomienda cuando tienes pocos datos
select PD.NomProducto,
PD.PrecioUnidad,
CA.NombreCategoria
from Compras.productos PD, Compras.proveedores PV ,Compras.categorias CA
where PD.IdProveedor = PV.IdProveedor and PD.IdCategoria = CA.IdCategoria
go
--Inner Join --Combinacion interna
select PD.NomProducto, PD.PrecioUnidad, PV.NomProveedor
from Compras.productos PD inner join Compras.proveedores PV
on PD.IdProveedor=PV.IdProveedor;
select distinct PV.NomProveedor
from Compras.productos PD inner join Compras.proveedores PV
on PD.IdProveedor = PV.IdProveedor;
select * from Compras.proveedores
---------------------------------------
select PD.NomProducto,
PD.PrecioUnidad,
PV.NomProveedor,
CA.NombreCategoria
from Compras.productos PD inner join Compras.proveedores PV
on PD.IdProveedor=PV.IdProveedor inner join Compras.categorias CA
on PD.IdCategoria=CA.IdCategoria;
--Combinacion Externa--
--Left join
select c.*,p.*
from Ventas.clientes c left join Ventas.pedidoscabe p
on C.IdCliente=p.IdCliente
--Clientes que nunca han hecho pedidos
select c.*,p.*
from Ventas.clientes c left join Ventas.pedidoscabe p
on C.IdCliente=p.IdCliente
where p.IdPedido is null;
--Insertemos un par de nuevos clientes
--Insertemos un par de nuevos Pedidos
Insert Ventas.pedidoscabe
Values
('9999',Null,Null,getdate(),Getdate()+1,Getdate()+3,0,30,'Tortugas Restau','Las Gacelas 111','Lima',null,'1734','Peru'),
('8888',Null,Null,getdate(),Getdate()+1,Getdate()+3,0,30,'Popeyes Restau','Los Galgos 111','Comas',null,'1731','Peru')
go
--Right join
select c.*,p.*
from Ventas.clientes c right join Ventas.pedidoscabe p
on C.IdCliente=p.IdCliente
select p.IdPedido,
c.IdCliente,
c.NomCliente
from ventas.clientes c right join Ventas.pedidoscabe P
ON C.IdCliente=p.IdCliente
where p.IdCliente is null;
--Full join --mostara todo lo que le pidas
select c.*,p.*
from Ventas.clientes c full join Ventas.pedidoscabe p
on C.IdCliente=p.IdCliente
--Cross join --combinacion crusada
select p.NomProducto from Compras.productos P
select A.NomProveedor from Compras.proveedores A
select p.NomProducto , A.NomProveedor, '________________' as [SI/NO]
from Compras.productos P cross join Compras.proveedores A