Sabtu, 18 Agustus 2018

SQL Server Tutorial : Soal - Soal Northwind 3

Link download database Northwind disini.

-- Get all Customer where sorting by ContactName ASC

SELECT * FROM Customers
ORDER BY ContactName ASC



Pada contoh ini kita tinggal select * untuk menampilkan semua field, lalu pakai order by ContactName ASC, untuk menampilkan record dari yang contactname nya dimulai dari A - Z karena yang dipakai adalah ascending.


-- Get Total Customer and ContactTitle where ContactTitle = Owner

SELECT count(CustomerID), ContactTitle
FROM Customers
WHERE ContactTitle = 'Owner'
Group By ContactTitle



Dari tabel Customers dimana ContactTitlenya adalah 'Owner', sudah pasti pada field ContactTitle hanya akan menghasilkan satu record yaitu Owner, kemudian count(CustomerID), akan menghitung customerID yang ContactTitle nya owner, Group by untuk menggroup berdasarkan ContactTitle nya.


-- Get Get total Customer and ContactTitle where count > 1

SELECT count(CustomerID) as Jumlah, ContactTitle 
FROM Customers
GROUP BY ContactTitle
Having Count(CustomerID) > 1


Hampir sama seperti sebelumnya, disini kita akan menghitung Jumlah Customers berdasarkan ContactTitle nya, namun disini kondisinya adalah jika Count(CustomerID) > 1, maka itu harus dalam Having karena Where tidak bisa menggunakan aggregate function.


-- Get TotalCustomer and ContactTitle where Count = 1

SELECT count(CustomerID) as Jumlah, ContactTitle 
FROM Customers
GROUP BY ContactTitle
Having Count(CustomerID) = 1



Ini sama dengan yang diatas, namun yang diambil adalah yang jumlahnya = 1.


/* Create a report that shows the number of employees and customers from each city that has employees in it */

SELECT count(distinct EmployeeID) as TotalEmployees, count(distinct CustomerID) as TotalCustomer, a.City 
From Employees a
LEFT JOIN Customers b
on a.City = b.City
Group By a.City




Jumat, 17 Agustus 2018

SQL Server Tutorial : Soal - Soal Northwind 2

Kalau ada yang mau download database nya untuk latihan, bisa lihat post berikut.


-- Get CustomerID, CompanyName, ContactName, ContactTitle, Address where Country Mexico

SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address 
FROM Customers
WHERE Country = 'Mexico'



Pada soal diatas, kita diminta menampilkan CustomerID, CompanyName, ContactName, ContactTitle, dan Address dimana Country nya adalah Mexico. Jadi untuk select nya kita tinggal select field - field yang mau ditampilkan, from Customers karena tabel yang dipakai adalah tabel Customers dan semua field itu ada di tabel Customers jadi tidak usah join joinan.
Kemudian, untuk kondisinya menggunakan where Country = 'Mexico' agar mendapatkan record yang countrynya Mexico.


-- Get CustomerID, CompanyName,ContactName, ContactTitle, Address where ContactName like 'AN%'

SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address 
FROM Customers
WHERE ContactName LIKE 'AN%'



Nah, untuk yang ini kita ingin menampilkan CustomerID, CompanyName, ContactName, ContactTitle, dan Address dimana ContactName like 'AN%'. Dalam kondisi like ini ada tanda % di belakang AN, jadi kita mau tampilkan yang ContacName nya diawali dengan AN. bisa dilihat di hasilnya CompanyName depannya AN semua.

-- Get No Fax if fax = NULL from Customers
SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, 
(CASE
WHEN Fax IS NULL THEN 'No Fax'
ELSE Fax
END) AS FaxNumber 
FROM Customers



Kalo kita select * di tabel Customers maka ada beberapa record Fax yang isinya NULL. Nah, disini kita diminta untuk mengganti NULL itu dengan 'No Fax'. Jadi caranya dengan membikin case yang akan mengisi field bernama FaxNumber.


-- Get All ContactTitle From Customers

Select distinct ContactTitle From Customers



Nah, disini kita diminta menampilkan ContactTitle tapi jangan ada yang rangkap. Kalo kita pake Select ContactTitle, maka yang muncul semua ContactTitle sebanyak record yang ada, Tapi kita disini cuma ingin tau ContactTitle apa aja yang ada, jadi bisa dilakukan dengan menggunakan Select distinct ContactTitle.


-- Get All Customer where sorting by Contact Name Desc

Select * FROM Customers
ORDER BY ContactName DESC


Nah ini kita tinggal select semuanya trus di order by ContactName desc


Rabu, 15 Agustus 2018

SQL Server Tutorial : Soal - Soal Northwind 1

Kalo ada yang mau download databasenya untuk latihan, cek post berikut.

-- Get Employee FullName

SELECT FirstName + ' ' + LastName as FullName FROM Employees 



Soal yang pertama kita diminta untuk menggabungkan nama depan dan nama belakang di dalam satu field, ini kita tinggal gabung pakai tanda + trus kasih spasi didalam tanda ' '.
-- Get Data Employee Name and Address where Title as Sales Manager

SELECT FirstName + ' ' + LastName as FullName, Address
FROM Employees
WHERE Title = 'Sales Manager'




-- Get Employee Name, Position, and Address where BirthDate = 1952-02-19 00:00:00:00

SELECT FirstName + ' ' + LastName, Title, Address  
FROM Employees
WHERE BirthDate = '1952-02-19'




-- Get All EMployees where hiredate between '1992-05-01' AND '1993-05-01'

SELECT * From Employees
WHERE HireDate BETWEEN '1992-05-01' AND '1993-05-01'




-- Find the number of sales representative in each city that contains at least 1 sales representatives.
Order by the number of employees

SELECT City, count(Title) as TotalEmployee from Employees
where Title = 'Sales Representative'
Group by City



Untuk soal yang ini kita diminta untuk menampilkan pegawai yang jabatannya 'Sales Representative' dari masing - masing kota. Untuk itu, menggunakan count(title) untuk menghitung jumlah titlenya. Kemudian setelah where ada group by city, jadi yang count(title) tadi akan di group berdasarkan masing - masing kota sehingga didapat hasil seperti diatas.

Selasa, 14 Agustus 2018

SQL Server Tutorial : Soal - Soal NorthWind

Saya akan mencoba share Database Northwind yang akan kita gunakan dalam Latihan - Latihan.
Link untuk downloadnya DISINI

Diagram Relasi dari Northwind itu seperti ini :

Silahkan di download dulu databasenya. Untuk soal-soal latihannya nanti nyusul di postingan selanjutnya ya.