-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSQL(Join Example).sql
165 lines (121 loc) · 4.49 KB
/
SQL(Join Example).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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
--Joins
--Birden fazla tablodan veri almamýza imkan veren bir yapýdýr. Join yaparken tablolarýn primary key ve foreign key yapýlarýndan yararlanmaktadýr.
use Northwind
--Products ve Categories tablolarýný birleþtirmek için Categories tablosunun primary key (CategoryId), Products tablosunun foreign key (CategoryId) faydalandýk.
select p.ProductID,
p.CategoryID
ProductName,
CategoryName,
UnitsInStock,
UnitPrice
from
Products p join Categories c
on p.CategoryID = c.CategoryID
/*Yukarýda yaptýðýmýz join iþlemi : "Select * from 'tablename'" 'den sonra join operatörünü çaðýrýp baðlýyacaðýmýz tabloyu
sonrada o tablodan iliþkili olan sutunlarý belirtiriz.Tabloya p. gibi kýsaltma vermemizin sebebi join iþleminde 2 tablo ile
çalýþtýðýmýz için benzer satýrlarý çaðýrýrken daha belirleyici olmak istememizdir.*/
--Suppliers tablosundan SupplierId, CompanyName, ContantName
--Products talosundan ProductId, ProductName, UnitInStock
select s.SupplierID,
s.CompanyName,
s.ContactName,
ProductID,
ProductName,
UnitsInStock
from
Products p join Suppliers s
on p.SupplierID = s.SupplierID
--Supplier, Product ve Category tablolarýný birleþtirelim
select c.CategoryName,
p.ProductName,
p.UnitsInStock,
s.CompanyName
from
Suppliers s join Products p
on s.SupplierID = p.SupplierID
join Categories c
on c.CategoryID = p.CategoryID
order by 1 asc --Order by 1 select den sonraki 1.(c.CategoryName) sutunu sýralar
-- Kategorilerine göre stok miktarým nedir?
select c.CategoryName,
SUM(p.UnitsInStock) as [Stock]
from Products p
join Categories c on p.CategoryID = c.CategoryID
group by c.CategoryName
order by [Stock] desc
--Her bir çalýþan ne kadarlýk satýþ yapmýþ?
select (e.FirstName+SPACE(1)+e.LastName) as [Full Name],
CAST(SUM(od.Quantity * od.UnitPrice * (1-od.Discount)) as decimal) as [Satýþ]
from
Employees e join Orders o
on e.EmployeeID = o.EmployeeID
join [Order Details] od
on o.OrderID = od.OrderID
group by (e.FirstName+SPACE(1)+e.LastName)
order by 2 desc
--Ürünlerime göre satýþlarým nasýl?
select p.ProductName,
Sum(od.Quantity) as [Amount],
CAST(SUM(od.Quantity * od.UnitPrice * (1 - od.Discount)) as decimal) as [Satýþ]
from
Products p join [Order Details] od
on p.ProductID = Od.ProductID
group by p.ProductName
order by 3 desc
--Categorilerime göre satýþlarým nasýl?
select c.CategoryName,
Sum(od.Quantity) as [Amount],
CAST(SUM(od.Quantity * od.UnitPrice * (1 - od.Discount)) as decimal) as [Satýþ]
from Categories c
join Products p on c.CategoryID = p.CategoryID
join [Order Details] od on p.ProductID = od.ProductID
group by c.CategoryName
order by 3 desc
--Hangi kargo þirketine ne kadar ödeme yapmýþým (Nakliyat Ödemesi = Freight)
select s.CompanyName,
SUM(o.Freight) as [Nakliyat Ödemesi]
from
Orders o join Shippers s
on s.ShipperID = o.ShipVia
group by s.CompanyName
order by [Nakliyat Ödemesi]
--Hangi tedarikçiden aldýðým ürün den kaç adet satmýþým ne kadar gelir elde etmiþim
select s.CompanyName,
p.ProductName,
SUM(od.Quantity) as Adet,
Cast(Sum(od.Quantity * od.UnitPrice * (1 - od.Discount)) as decimal) as Gelir
from
Suppliers s join Products p
on s.SupplierID = p.SupplierID
join [Order Details] od
on p.ProductID = od.ProductID
group by s.CompanyName, p.ProductName
order by 4 desc
--Hangi müþteri
--Hangi sipariþi vermiþ
--Hangi çalýþan almýþ
--hangi tarihte gerçekleþmiþ
--hangi kargo firmasý taþýmýþ
--hangi fiyattan alýnmýþ
--hangi kategoriye aitmiþ
--bu ürünü hangi tedarikçiden almýþým
--Ýlgili tablolarý joinleme iþlemi ile istenilen satýlarý getirelim
select o.OrderID,
c.CompanyName,
e.FirstName+SPACE(1)+e.LastName as [Full Name],
o.OrderDate,
s.CompanyName,
p.ProductName,
ca.CategoryName,
su.CompanyName,
od.Quantity * od.UnitPrice * (1 - od.Discount) as Income
from Employees e
join Orders o on e.EmployeeID = o.EmployeeID
join Customers c on c.CustomerID = o.CustomerID
join [Order Details] od on od.OrderID = o.OrderID
join Products p on p.ProductID = od.ProductID
join Categories ca on ca.CategoryID = p.CategoryID
join Suppliers su on su.SupplierID = p.SupplierID
join Shippers s on s.ShipperID = o.ShipVia
/*Left Join , Rigth Join ve Inner Join isimlerinden anlaþýlacaðý gibi benzer
iþlemleri soldaki tablonun tamamý ve istenilen satýlar veya sað daki tablonun tamamý */