--BT1: từ bảng 3 trong hình hãy in ra các thông tin sau đây: --mã đơn hàng, tên khách hàng, tên công ty vận chuyển --và chỉ ra các đơn hàng được chuyển đến 'Uk' trong năm 1997 select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, year(o.ShippedDate) as [year] from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s where o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID and o.ShipCountry ='Uk' and year(o.ShippedDate)=1997 -->kết quả 26 rows
--Từ ba bảng trong hình hãy in ra các thông tin sau đây: --Mã đơn hàng --Tên khách hàng --Tên công ty vận chuyển ---Và chỉ in ra các đơn hàng đến 'UK' trong năm 1997 Select o.[OrderID], c.CustomerID, s.CompanyName, YEAR(o.ShippedDate), o.ShipCountry From [dbo].[Orders] as o, [dbo].[Shippers] as s, [dbo].[Customers] as c Where o.CustomerID = c.CustomerID AND o.ShipVia = s.ShipperID AND YEAR(o.ShippedDate) = 1997 AND o.ShipCountry ='UK'
--bt1: từ 3 bảng Orders, customers, shippers, hãy in ra các thông tin sau đây: --mã đơn hàng --tên khách hàng --tên công ty vch --và chỉ in ra các đơn hàng đc giao đến UK trong năm 1997 select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, o.ShippedDate from Orders as o, Customers as c, Shippers as s where o.CustomerID = c.CustomerID and o.ShipVia= s.ShipperID and o.ShipCountry = 'UK' and year(o.ShippedDate) = 1997 --thử thách 1: từ bảng products and orders details, hãy in ra các thông tin sau đây: --mã đơn hàng --mã sản phẩm --tên sản phẩm --tổng tiền của mỗi đơn hàng
SELECT OD.OrderID, P.ProductID, P.ProductName, SUM(OD.UnitPrice * OD.Quantity) AS [SUMPRICE] FROM Products AS P, [Order Details] AS OD WHERE P.ProductID = OD.ProductID GROUP BY OD.OrderID, P.ProductID, P.ProductName;
Thử thách: Từ bảng Employee và Order, lọc ra mã nhân viên, họ và tên nhân viên (gom 2 cột last name và first name vào 1 cột đặt tên cột là họ và tên ví dụ: Davolio Nancy), số lượng đơn hàng mà nhân viên bán được lớn hơn 100 và nhân viên có quốc tịch (country) là Mỹ. Sắp xếp theo số lượng tăng dần của đơn hàng bán được
gửi bạn đáp án của mình nha: select e.EmployeeID, (e.LastName + ' ' + e.FirstName) as FullName, count(o.OrderID) as TotalOrders from [Employees] as e, [Orders] as o where o.EmployeeID = e.EmployeeID and e.Country like 'usa' group by e.EmployeeID, e.LastName, e.FirstName having count(o.OrderID) > 100 order by TotalOrders asc ;
-- Bài tập 1: Từ 3 bảng Orders, Customers, Shippers in ra các thôgn tin sau: --Mã đơn hàng --Tên khách hàng --Tên công ty vận chuyển --Và chỉ in ra các đơn hàng được giao đến "UK" trong năm 1997 SELECT [O].[OrderID], C.[ContactName], S.[CompanyName], O.[OrderDate], O.[ShipCountry] FROM [dbo].[Orders] AS O, [dbo].[Customers] AS C, [dbo].[Shippers] AS S WHERE C.[CustomerID] = O.[CustomerID] AND S.[ShipperID] = O.[ShipVia] AND O.[OrderDate] BETWEEN '1997-01-01' AND '1997-12-31' AND O.[ShipCountry] = 'UK' Dạ em cam ơn anh ạ!
-- BÀI TẬP 1: Từ 3 bảng Customers, Orders, shippers hãy in ra các thông tin sau đây: --Mã đơn hàng --Tên khách hàng --Tên công ty vận chuyển --và chỉ in ra các đơn hàng được giao đến 'UK' trong năm 1997. SELECT o.OrderID, c.ContactName,s.CompanyName FROM [dbo].[Customers] AS c, [dbo].[Orders] AS o, [dbo].[Shippers] AS s WHERE c.CustomerID = o.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry='UK' AND YEAR(o.ShippedDate)=1997 GROUP BY o.OrderID, c.ContactName,s.CompanyName => kết quả: 26 rows
Cảm ơn thầy , bài tập 1 : SELECT o.OrderID , o.CustomerID , s.CompanyName ,o.ShipCountry , o.ShippedDate FROM Customers as c , Orders as o, Shippers as s WHERE c.CustomerID = o.CustomerID AND s.ShipperID = o.ShipVia AND o.ShipCountry='UK' AND YEAR(o.ShippedDate)=1997 GROUP BY o.OrderID , o.CustomerID , s.CompanyName ,o.ShipCountry , o.ShippedDate
đã học hết 22 bài trc, học kiểu có đề là động não và 90% là đúng, sang cái này kiểu nghi ngờ nhân sinh thật sự, kiểu sao nó nhiều thế, cứ nhìn yêu cầu viết truy vấn ư, không có j khác support à ? khó thật sự, xong vụ nhân 2 bảng với nhau qua tích đề các cũng chẳng nhớ, group by thì đến 3 trg, thề e chẳng thể động não nổi là cần làm cái j, mong cách truy vấn trên nhiều bảng còn lại dễ thở hơn
công nhận :))) sang cái bài này thấy nghi ngờ bản thân luôn, anh ý ko hướng dẫn rõ là khi SELECT thì SELECT c.CustomerID hay o.CustomerID (nếu như cả 2 table đều có CustomerID), GROUP BY thì phải GROUP BY cả 3 column, đoạn này hơi khó hiểu nhỉ :))
-- Bài tập 1 SELECT o.OrderID, c.ContactName, s.CompanyName FROM Orders AS o, Shippers AS s, Customers AS c WHERE o.CustomerID = c.CustomerID AND o.ShipVia = s.ShipperID AND ShipCountry = 'UK' AND YEAR(ShippedDate) = 1997 -- Thử thách 1 -- Hãy đưa ra đơn hàng có giá cao nhất từ 2 bảng Order và Order Detail. -- Lưu ý: Phải tính cả mã giảm giá -- Thử thách 2 -- Đưa ra thông tin của 3 nhân viên đã giao được nhiều hàng nhất trong tháng 6 -- Từ bảng Employees và bảng Orders
Chỗ 13:15 em thấy là select với group by các cột phải giống nhau nếu ở trên là O.[EmployeeID) mà dưới group by là E.[EmployeeID) thì nó sẽ báo lỗi mặc dù cả 2 bằng nhau
--Từ 3 bảng customer, orders, shippers in ra thông tin --mã đơn hàng, tên khách hàng, tên công ty vận chuyển --Chỉ in ra các đơn hàng đến UK năm 1997 select o.OrderID, c.CompanyName, s.CompanyName from [dbo].[Customers] as c, [dbo].[Shippers] as s, [dbo].[Orders] as o where o.CustomerID = c.CustomerID and o.ShipVia= s.ShipperID and o.ShipCountry = 'UK' and year([ShippedDate]) = 1997
Cám ơn những bài học của anh! SELECT o.OrderID, c.ContactName, s.CompanyName FROM dbo.Orders AS o, dbo.Customers AS c, dbo.Shippers AS s WHERE o.CustomerID = c.CustomerID AND s.ShipperID = o.ShipVia AND YEAR(o.ShippedDate) = 1997 AND o.ShipCountry = 'UK';
Anh có video dạy về cơ sở dữ liệu, thiết kế hệ thống với chuẩn hóa dữ liệu không ạ? vì các video của anh nói về các cái mối quan hệ (một nhiều, nhiều nhiều,...) nhưng lại không có video giải thích
-- Bài tập: Từ ba bảng Customers, Orders, Shippers hãy in a các thông -- tin sau: -- Mã đơn hàng -- Tên khách hàng -- Tên công ty vận chuyển -- Và chỉ in ra các đơn hàng được giao đến 'UK' trong năm 1997 SELECT O.OrderID,C.[ContactName],S.CompanyName FROM [dbo].[Customers] AS C,[dbo].[Orders] AS O,[dbo].[Shippers] AS S WHERE O.CustomerID=C.CustomerID AND o.ShipVia=S.ShipperID AND O.ShipCountry='UK' AND YEAR(O.ShippedDate)=1997
Mine : --từ 3 bảng Shippers, orders, Customers --xuất ra thông tin mã đơn hàng, tên khách hàng, tên công ty vận chuyển --và chỉ in ra các đơn hàng được giao đến UK trong năm 1997 SELECT o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, o.RequiredDate FROM Orders as "o", Shippers as "s", Customers as "c" WHERE o.ShipVia = s.ShipperID and c.CustomerID = o.CustomerID and o.ShipCountry = 'UK' and Year(o.RequiredDate) = '1997'
Giải bài tập 1 select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry from Orders o join Shippers s on o.ShipVia = s.ShipperID join Customers c on o.CustomerID = c.CustomerID where ShipCountry = 'UK' and o.ShippedDate between '1997-01-01' and '1997-12-31' Kết quả 26 rows
--VD8: Hãy cho biết những thành phố nào có số lượng đơn hàng được giao là khác 1 và 2, ngày đặt hàng từ '1997-04-01' đến '1997-08-31' Select o.[ShipCountry], COUNT (o.[ShipCountry]) as Qty From [dbo].[Orders] as o Where o.[OrderDate] BETWEEN '1997-04-01' AND '1997-08-31' Group by [ShipCountry] Having COUNT (o.[ShipCountry]) NOT IN (1,2)
thầy ơi em làm ví dụ 5 như thế này đc ko ạ WITH t AS ( SELECT s.SupplierID , s.CompanyName , COUNT(p.ProductID) 'TotalProduct' FROM Products p JOIN Suppliers s ON p.SupplierID = s.SupplierID GROUP BY s.[SupplierID] , s.CompanyName ) SELECT * FROM t WHERE t.TotalProduct = (SELECT MAX(TotalProduct) FROM t)
Em bổ sung bài tập 3 đề có yêu cầu là country = uk nữa : SELECT C.CustomerID, C.CompanyName,C.ContactName,COUNT(O.[OrderID]) AS [TOTAL ORDERS] FROM [dbo].[Customers] AS C, [dbo].[Orders] AS O WHERE C.CustomerID = O.CustomerID AND C.Country='UK' GROUP BY C.CustomerID,C.CompanyName,C.ContactName
Em gửi anh câu trả lời SELECT O.OrderID, C.CustomerID, S.CompanyName, O.ShipCountry, O.OrderDate FROM DBO.Orders AS O, DBO.Customers AS C, DBO.Shippers AS S WHERE O.CustomerID = C.CustomerID AND O.ShipVia = S.ShipperID AND O.ShipCountry = 'UK' AND YEAR (O.OrderDate)='1997' (30 rows affected)
Đáp án của em: SELECT o.OrderID, c.CustomerID, s.CompanyName,o.ShipCountry,o.ShippedDate FROM Orders AS o, Customers AS c, Shippers AS s WHERE (o.CustomerID=c.CustomerID AND o.ShipVia= s.ShipperID) AND (o.ShipCountry='UK' AND YEAR(o.ShippedDate)='1997' ) GROUP BY o.OrderID, c.CustomerID, s.CompanyName,o.ShipCountry,o.ShippedDate
select c.[CustomerID],[CompanyName],[ContactName],count(o.[OrderID]) as [số đơn hàng đã mua],[ShipCountry] from [dbo].[Customers] as c,[dbo].[Orders] as o where c.[CustomerID] =o.[CustomerID] and [ShipCountry] ='UK' group by c.[CustomerID],[CompanyName],[ContactName],[ShipCountry] sẵn a xem giúp em làm vậy đúng ko ạ,ví dụ 3
16:53 em bổ sung thêm câu UK vào bài làm ạ SELECT C.CustomerID, C.CompanyName, C.ContactName, C.Country, COUNT(O.OrderID) AS [SL ĐƠN] FROM Customers AS C, Orders AS O WHERE C.Country LIKE 'UK' AND C.CustomerID = O.CustomerID GROUP BY C.CustomerID, C.CompanyName, C.ContactName, C.Country; BT1: SELECT O.OrderID, C.ContactName, S.CompanyName, O.ShipCountry, O.ShippedDate FROM Customers AS C, Shippers AS S, Orders AS O WHERE C.CustomerID = O.CustomerID AND S.ShipperID = O.ShipVia AND O.ShipCountry = 'UK' AND YEAR(O.ShippedDate) = 1997 GROUP BY O.OrderID, C.ContactName, S.CompanyName, O.ShipCountry, O.ShippedDate;
-Bài tập 1: SELECT o.OrderID, c.CustomerID, s.CompanyName FROM dbo.Orders AS o,dbo.Customers AS c, dbo.Shippers AS s WHERE o.CustomerID = c.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry = 'UK' AND YEAR(o.ShippedDate) = 1997;
-- Bài tập 1 SELECT o.OrderID, c.ContactName, s.CompanyName FROM dbo.Customers as c, dbo.Orders as o, dbo.Shippers as s WHERE c.CustomerID = o.CustomerID AND s.ShipperID = o.ShipVia AND ShipCountry LIKE 'UK' AND YEAR(ShippedDate) = 1997 -- Thử thách 1: Hiển thị ra danh sách tên nhà cung cấp và tên các sản phẩm của họ -- Thử thách 2: Hiển thị ra mã nhân viên, tên nhân viên , tên các sản phẩm họ đã giao và tổng số sản phẩm đó
em xin giải bài tập: SELECT o.OrderID, c.ContactName, s.CompanyName, c.Country, o.ShippedDate FROM Orders AS o, Shippers AS s, Customers AS c WHERE (o.CustomerID = c.CustomerID AND o.ShipVia = s.ShipperID) AND (o.ShipCountry ='UK' AND YEAR(o.ShippedDate) = 1997) ;
Cảm thấy như Phạm Nhật Vượng 🤣🤣 select b.OrderID,a.CustomerID,b.ShipName,b.ShipCountry from Customers as a,Orders as b,Shippers as c where a.CustomerID = b.CustomerID and c.ShipperID = b.ShipVia and b.ShipCountry like 'UK' and Year(ShippedDate) = 1997
cam on thay a em tra bai tap select o.OrderID, c.ContactName, sh.CompanyName from Customers as c, Orders as o, Shippers as sh where o.CustomerID = c.CustomerID and sh.ShipperID = o.ShipVia and o.ShipCountry = 'UK' and year(o.ShippedDate) = 1997
bài 3 hình như a quên dk khách hàng ở QG là UK SELECT c.CustomerID, c.CompanyName, c.ContactName,c.Country ,COUNT (o.OrderID) AS " Total Orede" FROM dbo.Customers AS c, dbo.Orders AS o WHERE c.CustomerID = o.CustomerID AND c.Country = 'UK' GROUP BY c.CustomerID, c.CompanyName,c.ContactName,c.Country;
Câu lệnh giải bài tập : SELECT Od.OrderID AS [Mã ĐH], Cus.ContactName AS [Tên KH], Ship.CompanyName AS [Tên CTY Vận Chuyển] FROM Orders AS Od, Customers AS Cus, Shippers AS Ship WHERE Od.ShipCountry = 'UK' AND YEAR(Od.ShippedDate) = '1997' AND Od.CustomerID = Cus.CustomerID AND Od.ShipVia = Ship.ShipperID
SELECT o.OrderID,c.CustomerID,c.CompanyName,s.CompanyName FROM [dbo].[Customers] AS c,[dbo].[Suppliers] AS s,[dbo].[Orders] AS o WHERE c.CustomerID=o.CustomerID AND s.SupplierID=o.ShipVia AND o.[ShipCountry] = 'UK' AND YEAR(o.ShippedDate) = 1997; Em cảm ơn
--Từ 3 bảng Orders, Customers, Shippers hãy in ra các thông tin sau --Mã đơn hàng --Tên khách hàng --Tên công ty vận chuyển --Và chỉ in ra các đơn hàng được giao đến UK vào năm 1997 SELECT O.OrderID, C.ContactName, S.CompanyName, C.Country, O.ShippedDate FROM [dbo].[Orders] AS O, [dbo].[Customers] AS C, [dbo].[Shippers] AS S WHERE S.ShipperID = O.ShipVia AND C.CustomerID = O.CustomerID AND C.Country = 'UK' AND YEAR(O.ShippedDate) = 1997;
select o.OrderID, c.CustomerID, s.CompanyName, o.ShipCountry, o.ShippedDate from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s where o.CustomerID = c.CustomerID and s.ShipperID = o.ShipVia and YEAR(ShippedDate) = 1997 and o.ShipCountry = 'UK'
-- Giải BT1 SELECT o.OrderID ,c.ContactName,s.CompanyName , year (o.ShippedDate ) as "Năm",o.ShipCountry FROM [dbo].[Customers] as "c",[dbo].[Orders] as "o",[dbo].[Shippers] as "s" WHERE o.ShipCountry = 'UK' and year (o.ShippedDate )='1997' GROUP BY o.OrderID ,c.ContactName,s.CompanyName , year (o.ShippedDate ) ,o.ShipCountry; -- Thử thách -- 1. In ra [OrderID],[ContactName],[RequiredDate],[ShipCity] -- Với điều kiện chỉ đến London và RequiredDate = [20 , 24]. -- Từ bảng Orders và bảng Customers, -- 2. In ra [ProductName],[CompanyName], Lượng hàng tồn -- Yêu cầu : in ra 3 công ty có lượng hàng tồn cao nhất. -- Từ bảng Products và bảng Customers.
em gửi bài tập ạ SELECT O.OrderID, C.ContactName, S.CompanyName FROM [dbo].[Orders] AS O, [dbo].[Customers] AS C, [dbo].[Shippers] AS S WHERE C.CustomerID = O.CustomerID AND S.ShipperID = O.ShipVia and o.ShipCountry = 'uk' and year(o.[ShippedDate])='1997'
BT 1 SELECT O.OrderID, C.CompanyName, S.CompanyName FROM [dbo].[Orders] AS O, [dbo].[Customers] AS C, [dbo].[Shippers] AS S WHERE O.CustomerID = C.CustomerID AND S.ShipperID = O.ShipVia AND O.ShipCountry = 'UK' AND YEAR (O.ShippedDate) = 1997 MINH RA 26 DONG Thử thách: Tu bang Suppliers, Product, Order detail lấy ra mã nhà cung cấp, địa chỉ nhà cung cấp, sl đặt hàng và chiết khấu, tính trung bình giá bán của các sản phẩm cho mỗi nhà cung cấp, chỉ lấy 5 KQ đầu
--lấy ra các thông tin: mã đơn hàng, tên khách hàng, Tên công ty vận chuyển, --và chỉ in ra các đơn hàng được giao đến 'UK' trong năm 1997 SELECT o.[OrderID], c.[ContactName] AS [Tên Khách Hàng], o.[ShipName] AS [Tên Công Ty Vận Chuyển] FROM [dbo].[Orders] AS o JOIN [dbo].[Customers] AS c ON o.[CustomerID] = c.[CustomerID] WHERE o.[ShipCountry] = 'UK' AND YEAR(o.[ShippedDate]) = 1997;
-- BAI TAP VE NHA: Tu 3 bang "Customers", "Orders", "Shippers", hay in ra: -- Ma don hang; -- Ten khach hang; -- Ten cty van chuyen; -- Va chi lay ra cac don hang duoc giao den "UK" trong nam 1997; SELECT o.OrderID, c.ContactName, s.CompanyName , YEAR(o.ShippedDate) AS [year] FROM dbo.Orders AS o, dbo.Customers AS c, dbo.Shippers AS s WHERE o.CustomerID = c.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry='UK' AND YEAR(o.ShippedDate)='1997' GROUP BY o.OrderID, c.ContactName, s.CompanyName, YEAR(o.ShippedDate);
Cái ví dụ 2. Bạn nào muốn gọp họ và tên vào chung 1 cột thì có thể thử cách này nha select e.EmployeeID, e.FirstName +' '+ e.LastName as [Họ và tên],count(o.OrderID) as [Số đơn hàng bán được] from Employees as e, Orders as o where e.EmployeeID = o.EmployeeID group by o.EmployeeID, e.EmployeeID, e.FirstName +' '+ e.LastName
SELECT o.[OrderID],c.[CompanyName], s.[CompanyName],year(o.(ShippedDate)),o.[Shipcountry] from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s where o.[CustomerID] = c.[CustomerID] and o.[ShipVia]=s.[ShipID] and o.[Shipcountry]='UK' and year(o.(ShippedDate))='1997'
SELECT 0.[OrderID],o.[CustomerID],s.[CompanyName],o.[ShipCountry],o.[ShippedDate] FROM [dbo].[Customers] AS "c", [dbo].[Orders] AS "o", [dbo].[Shippers] AS "s" WHERE o.[ShipCountry]='UK'AND YEAR(o.[ShippedDate])=1997 AND c.[CustomerID]=o.[CustomerID] AND o.[ShipVia]=s.[ShipperID];
BT SELECT o.OrderID, c.ContactName, s.CompanyName FROM dbo.Customers AS c, dbo.Orders AS o, dbo.Shippers AS s WHERE c.CustomerID = o.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry = 'UK' AND YEAR(o.OrderDate) = 1997; ==> 30 dòng Cám ơn anh :)
select o.OrderID,c.ContactName,s.CompanyName,o.ShipCountry,o.ShippedDate from Orders as o,Customers as c,Shippers as s where o.ShipCountry = 'UK'and YEAR(ShippedDate) = 1997 and o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID
select o.OrderID, c.ContactName, c.CompanyName, o.OrderID, o.OrderDate from [dbo].[Customers] as c, [dbo].[Orders] as o, [dbo].[Shippers] as s where o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID and o.ShipCountry ='UK' and year(o.OrderDate) = 1997
BT: SELECT O.OrderID, C.ContactName, S.CompanyName, O.ShipCountry, YEAR(O.ShippedDate) AS Year FROM Orders AS O, Customers AS C, Shippers AS S WHERE O.ShipCountry = 'UK' AND C.CustomerID = O.CustomerID AND O.ShipVia = S.ShipperID AND YEAR(O.ShippedDate) = 1997;
select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, o.ShippedDate from Customers as c, Orders as o, Shippers as s where c.CustomerID=o.CustomerID and o.ShipVia=s.ShipperID and o.ShipCountry like 'UK' and o.ShippedDate like '%1997%';
BT1: SELECT o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, YEAR(o.OrderDate) AS "Year" FROM [dbo].[Orders] AS o, [dbo].[Customers] AS c, [dbo].[Shippers] AS s WHERE o.CustomerID=c.CustomerID AND o.ShipVia=s.ShipperID AND o.ShipCountry LIKE 'UK' AND YEAR(o.OrderDate)=1997 GROUP BY o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, YEAR(o.OrderDate);
SELECT o.OrderID, c.CompanyName as 'NameCustomers', s.CompanyName as 'NameShippers', o.ShipCountry, o.ShippedDate FROM Customers AS c, Orders as o, Shippers as s WHERE c.CustomerID = o.CustomerID AND s.ShipperID = o.ShipVia AND o.ShipCountry LIKE 'uk' AND YEAR(O.ShippedDate) = '1997';
VD bổ sung SELECT C.CustomerID, C.CompanyName, C.ContactName,[ShipCountry], COUNT(O.[OrderID]) AS [TotalOders] FROM [dbo].[Customers] AS C , [dbo].[Orders] AS O WHERE C.CustomerID = O.CustomerID AND [ShipCountry] = 'UK' GROUP BY C.CustomerID, C.CompanyName, C.ContactName,[ShipCountry];
SELECT o.[OrderID],c.[ContactName],c.[CompannyName], o.[ShipCountry], YEAR([ShippedDate]) FROM [Orders] AS o, [Customers] AS c WHERE o.[ShipCountry[='UK' AND YEAR([ShippedDate])=1997
use NORTHWND select o.OrderID, c.ContactName, s.CompanyName, YEAR(o.ShippedDate) as "Year Shipped", o.ShipCountry from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s where c.CustomerID = o.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry = 'UK' AND YEAR(o.ShippedDate)=1997
Select O.OrderID,C.ContactName,S.CompanyName From [dbo].[Orders] as O,[dbo].[Customers] as C, Shippers as S Where O.ShipCountry ='UK' and Year(O.ShippedDate) =1997 and C.CustomerID = O.CustomerID and S.ShipperID = S.ShipperID Group By O.OrderID,C.ContactName,S.CompanyName
select o.CustomerID , c.ContactName , s.CompanyName, o.ShipCountry, o.ShippedDate from [dbo].[Customers] as c , [dbo].[Orders] as o ,[dbo].[Shippers] as s where o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID and o.ShipCountry = 'UK' and year(o.ShippedDate) = 1997 group by o.CustomerID , c.ContactName , s.CompanyName, o.ShipCountry, o.ShippedDate
select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, year(o.[ShippedDate]) as [year] from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s where o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID group by o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, o.ShippedDate having o.ShipCountry like 'UK' and year(o.[ShippedDate])=1997 order by o.ShipCountry asc;
select o.OrderID, c.ContactName,s.CompanyName,o.ShipCountry,O.ShippedDate, count(o.OrderID) from Customers as c , Orders as o , Shippers as s where c.CustomerID=o.CustomerID and s.ShipperID=o.ShipVia group by o.OrderID, c.ContactName,s.CompanyName ,o.ShippedDate,o.ShipCountry having YEAR(o.ShippedDate) = '1997' and o.ShipCountry in ('UK');
SELECT o.OrderID, c.ContactName, s.CompanyName FROM Customers AS c, Orders AS o, Shippers AS s WHERE o.ShipVia=s.ShipperID AND c.CustomerID=o.CustomerID AND o.ShipCountry='UK' AND YEAR(o.ShippedDate)=1997
SELECT o.OrderID AS "Ma Don Hang" , c.ContactName AS "Ten Khach Hang", s.CompanyName AS "Ten Don Vi Van Chuyen" FROM Orders AS o, Customers AS c, Shippers AS s WHERE (c.CustomerID = o.CustomerID AND o.ShipVia = s.ShipperID )AND( o.ShipCountry LIKE "UK" AND Year(o.ShippedDate) = "1997" ) GROUP BY o.OrderID , c.ContactName , s.CompanyName
SELECT o.OrderID, c.ContactName, s.CompanyName FROM Orders as o, Customers as c, Shippers as s WHERE o.ShipCountry = 'UK' AND YEAR(o.OrderDate) = '1997' AND o.CustomerId = c.CustomerID AND s.ShipperID = o.ShipVia ORDER BY c.ContactName DESC;
SELECT o.OrderID,c.ContactName,s.CompanyName,[ShippedDate] FROM dbo.Orders AS o, dbo.Customers AS c, dbo.Shippers AS s WHERE o.CustomerID=c.CustomerID AND s.ShipperID=o.ShipVia AND o.ShipCountry ='UK' AND YEAR([ShippedDate])= 1997 GROUP BY o.OrderID,c.ContactName,s.CompanyName,[ShippedDate] Em cảm ơn ạ
bt1 SELECT o.OrderID, c.ContactName, s.ShipperID, s.CompanyName, o.ShipCountry, o.OrderDate FROM [dbo].[Customers] as c, [dbo].[Orders] as o, [dbo].[Shippers] as s WHERE o.CustomerID = c.CustomerID AND s.ShipperID = o.ShipVia AND o.ShipCountry LIKE 'UK' AND YEAR(o.OrderDate) = 1997 GROUP BY o.OrderID, c.ContactName, s.ShipperID, s.CompanyName, o.ShipCountry, o.OrderDate;
bt1 WITH t AS ( SELECT o.OrderID , c.ContactName , s.CompanyName , Year(o.ShippedDate) 'Year' ,o.ShipCountry 'ShipCountry' FROM Orders o JOIN Customers c ON o.CustomerID = c.CustomerID JOIN Shippers s ON o.ShipVia = s.ShipperID GROUP BY o.OrderID , c.ContactName , s.CompanyName , Year(o.ShippedDate) ,o.ShipCountry ) SELECT * FROM t WHERE t.ShipCountry = 'UK' and t.Year='1997'
--BT1: từ bảng 3 trong hình hãy in ra các thông tin sau đây:
--mã đơn hàng, tên khách hàng, tên công ty vận chuyển
--và chỉ ra các đơn hàng được chuyển đến 'Uk' trong năm 1997
select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, year(o.ShippedDate) as [year]
from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s
where o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID and o.ShipCountry ='Uk' and year(o.ShippedDate)=1997
-->kết quả 26 rows
Anh dạy ngắn gọn, xúc tích và rất dễ hiểu. Cảm ơn rất nhiều.
bạn dạy rất hay và đúng chuẩn cho người mới học từ khó đến dễ cảm ơn bản
--Từ ba bảng trong hình hãy in ra các thông tin sau đây:
--Mã đơn hàng
--Tên khách hàng
--Tên công ty vận chuyển
---Và chỉ in ra các đơn hàng đến 'UK' trong năm 1997
Select o.[OrderID], c.CustomerID, s.CompanyName, YEAR(o.ShippedDate), o.ShipCountry
From [dbo].[Orders] as o, [dbo].[Shippers] as s, [dbo].[Customers] as c
Where o.CustomerID = c.CustomerID AND o.ShipVia = s.ShipperID AND YEAR(o.ShippedDate) = 1997 AND o.ShipCountry ='UK'
--bt1: từ 3 bảng Orders, customers, shippers, hãy in ra các thông tin sau đây:
--mã đơn hàng
--tên khách hàng
--tên công ty vch
--và chỉ in ra các đơn hàng đc giao đến UK trong năm 1997
select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, o.ShippedDate
from Orders as o, Customers as c, Shippers as s
where o.CustomerID = c.CustomerID
and o.ShipVia= s.ShipperID
and o.ShipCountry = 'UK'
and year(o.ShippedDate) = 1997
--thử thách 1: từ bảng products and orders details, hãy in ra các thông tin sau đây:
--mã đơn hàng
--mã sản phẩm
--tên sản phẩm
--tổng tiền của mỗi đơn hàng
SELECT OD.OrderID, P.ProductID, P.ProductName, SUM(OD.UnitPrice * OD.Quantity) AS [SUMPRICE]
FROM Products AS P, [Order Details] AS OD
WHERE P.ProductID = OD.ProductID
GROUP BY OD.OrderID, P.ProductID, P.ProductName;
Thử thách: Từ bảng Employee và Order, lọc ra mã nhân viên, họ và tên nhân viên (gom 2 cột last name và first name vào 1 cột đặt tên cột là họ và tên ví dụ: Davolio Nancy), số lượng đơn hàng mà nhân viên bán được lớn hơn 100 và nhân viên có quốc tịch (country) là Mỹ. Sắp xếp theo số lượng tăng dần của đơn hàng bán được
gửi bạn đáp án của mình nha:
select e.EmployeeID,
(e.LastName + ' ' + e.FirstName) as FullName,
count(o.OrderID) as TotalOrders
from [Employees] as e, [Orders] as o
where o.EmployeeID = e.EmployeeID and e.Country like 'usa'
group by e.EmployeeID, e.LastName, e.FirstName
having count(o.OrderID) > 100
order by TotalOrders asc
;
Mong a ra nhiều clip hơn ạ, Chúc a luôn khỏe mạnh
-- Bài tập 1: Từ 3 bảng Orders, Customers, Shippers in ra các thôgn tin sau:
--Mã đơn hàng
--Tên khách hàng
--Tên công ty vận chuyển
--Và chỉ in ra các đơn hàng được giao đến "UK" trong năm 1997
SELECT [O].[OrderID], C.[ContactName], S.[CompanyName], O.[OrderDate], O.[ShipCountry]
FROM [dbo].[Orders] AS O, [dbo].[Customers] AS C, [dbo].[Shippers] AS S
WHERE C.[CustomerID] = O.[CustomerID]
AND S.[ShipperID] = O.[ShipVia]
AND O.[OrderDate] BETWEEN '1997-01-01' AND '1997-12-31'
AND O.[ShipCountry] = 'UK'
Dạ em cam ơn anh ạ!
-- BÀI TẬP 1: Từ 3 bảng Customers, Orders, shippers hãy in ra các thông tin sau đây:
--Mã đơn hàng
--Tên khách hàng
--Tên công ty vận chuyển
--và chỉ in ra các đơn hàng được giao đến 'UK' trong năm 1997.
SELECT o.OrderID, c.ContactName,s.CompanyName
FROM [dbo].[Customers] AS c, [dbo].[Orders] AS o, [dbo].[Shippers] AS s
WHERE c.CustomerID = o.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry='UK' AND YEAR(o.ShippedDate)=1997
GROUP BY o.OrderID, c.ContactName,s.CompanyName
=> kết quả: 26 rows
Cảm ơn thầy , bài tập 1 :
SELECT o.OrderID , o.CustomerID , s.CompanyName ,o.ShipCountry , o.ShippedDate
FROM Customers as c , Orders as o, Shippers as s
WHERE c.CustomerID = o.CustomerID AND s.ShipperID = o.ShipVia AND o.ShipCountry='UK' AND YEAR(o.ShippedDate)=1997
GROUP BY o.OrderID , o.CustomerID , s.CompanyName ,o.ShipCountry , o.ShippedDate
đã học hết 22 bài trc, học kiểu có đề là động não và 90% là đúng, sang cái này kiểu nghi ngờ nhân sinh thật sự, kiểu sao nó nhiều thế, cứ nhìn yêu cầu viết truy vấn ư, không có j khác support à ? khó thật sự, xong vụ nhân 2 bảng với nhau qua tích đề các cũng chẳng nhớ, group by thì đến 3 trg, thề e chẳng thể động não nổi là cần làm cái j, mong cách truy vấn trên nhiều bảng còn lại dễ thở hơn
công nhận :))) sang cái bài này thấy nghi ngờ bản thân luôn, anh ý ko hướng dẫn rõ là khi SELECT thì SELECT c.CustomerID hay o.CustomerID (nếu như cả 2 table đều có CustomerID), GROUP BY thì phải GROUP BY cả 3 column, đoạn này hơi khó hiểu nhỉ :))
nma làm dần là quen ý, hơi rối xíu nma sau khi thực hành tất cả các bài tập trong video này thì t thấy dễ hiểu hơn rùi, cố lênnn
@@minhanhhoang8634 SELECT c.CustomerID hay o.CustomerID đều được cả bạn. bạn thử xem nó đúng cả vì đã kết nối bảng nên dữ liệu như nhau
-- Bài tập 1
SELECT o.OrderID, c.ContactName, s.CompanyName
FROM Orders AS o, Shippers AS s, Customers AS c
WHERE o.CustomerID = c.CustomerID AND
o.ShipVia = s.ShipperID
AND ShipCountry = 'UK'
AND YEAR(ShippedDate) = 1997
-- Thử thách 1
-- Hãy đưa ra đơn hàng có giá cao nhất từ 2 bảng Order và Order Detail.
-- Lưu ý: Phải tính cả mã giảm giá
-- Thử thách 2
-- Đưa ra thông tin của 3 nhân viên đã giao được nhiều hàng nhất trong tháng 6
-- Từ bảng Employees và bảng Orders
Chỗ 13:15 em thấy là select với group by các cột phải giống nhau nếu ở trên là O.[EmployeeID) mà dưới group by là E.[EmployeeID) thì nó sẽ báo lỗi mặc dù cả 2 bằng nhau
Em muốn hỏi tại sao ở 2 vd cuối cùng, khi tính tổng giá trị cuối của đơn hàng, lại không tính chiết khấu vào trong đó ah ?
--Từ 3 bảng customer, orders, shippers in ra thông tin
--mã đơn hàng, tên khách hàng, tên công ty vận chuyển
--Chỉ in ra các đơn hàng đến UK năm 1997
select o.OrderID, c.CompanyName, s.CompanyName
from [dbo].[Customers] as c, [dbo].[Shippers] as s, [dbo].[Orders] as o
where o.CustomerID = c.CustomerID and o.ShipVia= s.ShipperID
and o.ShipCountry = 'UK' and year([ShippedDate]) = 1997
Cám ơn những bài học của anh!
SELECT o.OrderID, c.ContactName, s.CompanyName
FROM dbo.Orders AS o, dbo.Customers AS c, dbo.Shippers AS s
WHERE o.CustomerID = c.CustomerID AND s.ShipperID = o.ShipVia AND YEAR(o.ShippedDate) = 1997 AND o.ShipCountry = 'UK';
cảm ơn anh bài giảng rất hay ạ
Anh có video dạy về cơ sở dữ liệu, thiết kế hệ thống với chuẩn hóa dữ liệu không ạ? vì các video của anh nói về các cái mối quan hệ (một nhiều, nhiều nhiều,...) nhưng lại không có video giải thích
Không có em
a ơi cho e hỏi ví dụ 5 phải thêm distinct nữa chứ ạ ví dụ cả 2 đều cùng 5 thì nó in ra 5 , nếu top 1 không thì thiếu đk ạ
-- Bài tập: Từ ba bảng Customers, Orders, Shippers hãy in a các thông
-- tin sau:
-- Mã đơn hàng
-- Tên khách hàng
-- Tên công ty vận chuyển
-- Và chỉ in ra các đơn hàng được giao đến 'UK' trong năm 1997
SELECT O.OrderID,C.[ContactName],S.CompanyName
FROM [dbo].[Customers] AS C,[dbo].[Orders] AS O,[dbo].[Shippers] AS S
WHERE O.CustomerID=C.CustomerID AND o.ShipVia=S.ShipperID AND O.ShipCountry='UK' AND YEAR(O.ShippedDate)=1997
Mine :
--từ 3 bảng Shippers, orders, Customers
--xuất ra thông tin mã đơn hàng, tên khách hàng, tên công ty vận chuyển
--và chỉ in ra các đơn hàng được giao đến UK trong năm 1997
SELECT o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, o.RequiredDate
FROM Orders as "o", Shippers as "s", Customers as "c"
WHERE o.ShipVia = s.ShipperID and c.CustomerID = o.CustomerID
and o.ShipCountry = 'UK' and Year(o.RequiredDate) = '1997'
Giải bài tập 1
select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry
from Orders o
join Shippers s on o.ShipVia = s.ShipperID
join Customers c on o.CustomerID = c.CustomerID
where ShipCountry = 'UK' and o.ShippedDate between '1997-01-01' and '1997-12-31'
Kết quả 26 rows
--VD8: Hãy cho biết những thành phố nào có số lượng đơn hàng được giao là khác 1 và 2, ngày đặt hàng từ '1997-04-01' đến '1997-08-31'
Select o.[ShipCountry], COUNT (o.[ShipCountry]) as Qty
From [dbo].[Orders] as o
Where o.[OrderDate] BETWEEN '1997-04-01' AND '1997-08-31'
Group by [ShipCountry]
Having COUNT (o.[ShipCountry]) NOT IN (1,2)
thầy ơi em làm ví dụ 5 như thế này đc ko ạ
WITH t AS
(
SELECT s.SupplierID , s.CompanyName , COUNT(p.ProductID) 'TotalProduct'
FROM Products p
JOIN Suppliers s
ON p.SupplierID = s.SupplierID
GROUP BY s.[SupplierID] , s.CompanyName
)
SELECT * FROM t
WHERE t.TotalProduct = (SELECT MAX(TotalProduct) FROM t)
Em bổ sung bài tập 3 đề có yêu cầu là country = uk nữa :
SELECT C.CustomerID, C.CompanyName,C.ContactName,COUNT(O.[OrderID]) AS [TOTAL ORDERS]
FROM [dbo].[Customers] AS C, [dbo].[Orders] AS O
WHERE C.CustomerID = O.CustomerID AND C.Country='UK'
GROUP BY C.CustomerID,C.CompanyName,C.ContactName
thầy ơi đoạn 26:00 có vẻ bị thiếu ạ, đề yêu cầu là " số lượng sản phẩm KHÁC NHAU " mà ạ, thầy làm chưa có khác nhau ấy ạ
productID bản thân nó mỗi sản phẩm là đã khác nhau rồi á bạn
sao em nhập c. nó không ra list bên dưới ạ=((((
Em gửi anh câu trả lời
SELECT O.OrderID, C.CustomerID, S.CompanyName, O.ShipCountry, O.OrderDate
FROM DBO.Orders AS O, DBO.Customers AS C, DBO.Shippers AS S
WHERE O.CustomerID = C.CustomerID AND O.ShipVia = S.ShipperID AND O.ShipCountry = 'UK' AND YEAR (O.OrderDate)='1997'
(30 rows affected)
Hãy chọn ra 10 người có giá đơn hàng cao nhất từ hai bảng Orders Details và Orders
Đáp án của em:
SELECT o.OrderID, c.CustomerID, s.CompanyName,o.ShipCountry,o.ShippedDate
FROM Orders AS o, Customers AS c, Shippers AS s
WHERE (o.CustomerID=c.CustomerID AND o.ShipVia= s.ShipperID) AND (o.ShipCountry='UK' AND YEAR(o.ShippedDate)='1997' )
GROUP BY o.OrderID, c.CustomerID, s.CompanyName,o.ShipCountry,o.ShippedDate
ví dụ 3 hình như thầy làm thiếu phần khách hàng đến từ UK thì phải
select c.[CustomerID],[CompanyName],[ContactName],count(o.[OrderID]) as [số đơn hàng đã mua],[ShipCountry]
from [dbo].[Customers] as c,[dbo].[Orders] as o
where c.[CustomerID] =o.[CustomerID] and [ShipCountry] ='UK'
group by c.[CustomerID],[CompanyName],[ContactName],[ShipCountry]
sẵn a xem giúp em làm vậy đúng ko ạ,ví dụ 3
cach nay co khac gi voi left join k aj
MUỐN XEM SƠ ĐỒ ĐÓ NHƯ NÀO VẬY Ạ
16:53 em bổ sung thêm câu UK vào bài làm ạ
SELECT C.CustomerID, C.CompanyName, C.ContactName, C.Country, COUNT(O.OrderID) AS [SL ĐƠN]
FROM Customers AS C, Orders AS O
WHERE C.Country LIKE 'UK' AND C.CustomerID = O.CustomerID
GROUP BY C.CustomerID, C.CompanyName, C.ContactName, C.Country;
BT1:
SELECT O.OrderID, C.ContactName, S.CompanyName, O.ShipCountry, O.ShippedDate
FROM Customers AS C, Shippers AS S, Orders AS O
WHERE C.CustomerID = O.CustomerID AND S.ShipperID = O.ShipVia
AND O.ShipCountry = 'UK' AND YEAR(O.ShippedDate) = 1997
GROUP BY O.OrderID, C.ContactName, S.CompanyName, O.ShipCountry, O.ShippedDate;
-Bài tập 1:
SELECT o.OrderID, c.CustomerID, s.CompanyName
FROM dbo.Orders AS o,dbo.Customers AS c, dbo.Shippers AS s
WHERE o.CustomerID = c.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry = 'UK' AND YEAR(o.ShippedDate) = 1997;
-- Bài tập 1
SELECT o.OrderID, c.ContactName, s.CompanyName
FROM dbo.Customers as c,
dbo.Orders as o,
dbo.Shippers as s
WHERE c.CustomerID = o.CustomerID AND
s.ShipperID = o.ShipVia AND
ShipCountry LIKE 'UK' AND
YEAR(ShippedDate) = 1997
-- Thử thách 1: Hiển thị ra danh sách tên nhà cung cấp và tên các sản phẩm của họ
-- Thử thách 2: Hiển thị ra mã nhân viên, tên nhân viên , tên các sản phẩm họ đã giao và tổng số sản phẩm đó
em xin giải bài tập:
SELECT o.OrderID, c.ContactName, s.CompanyName, c.Country, o.ShippedDate
FROM Orders AS o, Shippers AS s, Customers AS c
WHERE (o.CustomerID = c.CustomerID AND o.ShipVia = s.ShipperID) AND (o.ShipCountry ='UK' AND YEAR(o.ShippedDate) = 1997) ;
Cảm thấy như Phạm Nhật Vượng 🤣🤣
select b.OrderID,a.CustomerID,b.ShipName,b.ShipCountry
from Customers as a,Orders as b,Shippers as c
where a.CustomerID = b.CustomerID and c.ShipperID = b.ShipVia and b.ShipCountry like 'UK' and Year(ShippedDate) = 1997
cam on thay a
em tra bai tap
select o.OrderID, c.ContactName, sh.CompanyName
from Customers as c, Orders as o, Shippers as sh
where o.CustomerID = c.CustomerID and sh.ShipperID = o.ShipVia and o.ShipCountry = 'UK' and year(o.ShippedDate) = 1997
bài 3 hình như a quên dk khách hàng ở QG là UK
SELECT c.CustomerID, c.CompanyName,
c.ContactName,c.Country ,COUNT (o.OrderID) AS " Total Orede"
FROM dbo.Customers AS c, dbo.Orders AS o
WHERE c.CustomerID = o.CustomerID AND c.Country = 'UK'
GROUP BY c.CustomerID, c.CompanyName,c.ContactName,c.Country;
Câu lệnh giải bài tập :
SELECT
Od.OrderID AS [Mã ĐH],
Cus.ContactName AS [Tên KH],
Ship.CompanyName AS [Tên CTY Vận Chuyển]
FROM Orders AS Od, Customers AS Cus, Shippers AS Ship
WHERE
Od.ShipCountry = 'UK'
AND YEAR(Od.ShippedDate) = '1997'
AND Od.CustomerID = Cus.CustomerID
AND Od.ShipVia = Ship.ShipperID
anh ơi bao giờ có video tiếp ạ
Sang tuần sau bạn nhé.
SELECT o.OrderID,c.CustomerID,c.CompanyName,s.CompanyName
FROM [dbo].[Customers] AS c,[dbo].[Suppliers] AS s,[dbo].[Orders] AS o
WHERE c.CustomerID=o.CustomerID AND s.SupplierID=o.ShipVia AND o.[ShipCountry] = 'UK' AND YEAR(o.ShippedDate) = 1997;
Em cảm ơn
--Từ 3 bảng Orders, Customers, Shippers hãy in ra các thông tin sau
--Mã đơn hàng
--Tên khách hàng
--Tên công ty vận chuyển
--Và chỉ in ra các đơn hàng được giao đến UK vào năm 1997
SELECT O.OrderID, C.ContactName, S.CompanyName, C.Country, O.ShippedDate
FROM [dbo].[Orders] AS O, [dbo].[Customers] AS C, [dbo].[Shippers] AS S
WHERE S.ShipperID = O.ShipVia AND C.CustomerID = O.CustomerID AND C.Country = 'UK' AND YEAR(O.ShippedDate) = 1997;
select o.OrderID, c.CustomerID, s.CompanyName, o.ShipCountry, o.ShippedDate
from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s
where o.CustomerID = c.CustomerID and s.ShipperID = o.ShipVia and YEAR(ShippedDate) = 1997 and o.ShipCountry = 'UK'
-- Giải BT1
SELECT o.OrderID ,c.ContactName,s.CompanyName , year (o.ShippedDate ) as "Năm",o.ShipCountry
FROM [dbo].[Customers] as "c",[dbo].[Orders] as "o",[dbo].[Shippers] as "s"
WHERE o.ShipCountry = 'UK' and year (o.ShippedDate )='1997'
GROUP BY o.OrderID ,c.ContactName,s.CompanyName , year (o.ShippedDate ) ,o.ShipCountry;
-- Thử thách
-- 1. In ra [OrderID],[ContactName],[RequiredDate],[ShipCity]
-- Với điều kiện chỉ đến London và RequiredDate = [20 , 24].
-- Từ bảng Orders và bảng Customers,
-- 2. In ra [ProductName],[CompanyName], Lượng hàng tồn
-- Yêu cầu : in ra 3 công ty có lượng hàng tồn cao nhất.
-- Từ bảng Products và bảng Customers.
em gửi bài tập ạ
SELECT O.OrderID, C.ContactName, S.CompanyName
FROM [dbo].[Orders] AS O, [dbo].[Customers] AS C,
[dbo].[Shippers] AS S
WHERE C.CustomerID = O.CustomerID AND S.ShipperID = O.ShipVia and o.ShipCountry = 'uk' and year(o.[ShippedDate])='1997'
BT 1
SELECT O.OrderID, C.CompanyName, S.CompanyName
FROM [dbo].[Orders] AS O, [dbo].[Customers] AS C, [dbo].[Shippers] AS S
WHERE O.CustomerID = C.CustomerID AND S.ShipperID = O.ShipVia AND O.ShipCountry = 'UK' AND YEAR (O.ShippedDate) = 1997
MINH RA 26 DONG
Thử thách: Tu bang Suppliers, Product, Order detail lấy ra mã nhà cung cấp, địa chỉ nhà cung cấp, sl đặt hàng và chiết khấu, tính trung bình giá bán của các sản phẩm cho mỗi nhà cung cấp, chỉ lấy 5 KQ đầu
--lấy ra các thông tin: mã đơn hàng, tên khách hàng, Tên công ty vận chuyển,
--và chỉ in ra các đơn hàng được giao đến 'UK' trong năm 1997
SELECT o.[OrderID],
c.[ContactName] AS [Tên Khách Hàng],
o.[ShipName] AS [Tên Công Ty Vận Chuyển]
FROM [dbo].[Orders] AS o
JOIN [dbo].[Customers] AS c ON o.[CustomerID] = c.[CustomerID]
WHERE o.[ShipCountry] = 'UK' AND YEAR(o.[ShippedDate]) = 1997;
-- BAI TAP VE NHA: Tu 3 bang "Customers", "Orders", "Shippers", hay in ra:
-- Ma don hang;
-- Ten khach hang;
-- Ten cty van chuyen;
-- Va chi lay ra cac don hang duoc giao den "UK" trong nam 1997;
SELECT o.OrderID, c.ContactName, s.CompanyName
, YEAR(o.ShippedDate) AS [year]
FROM dbo.Orders AS o, dbo.Customers AS c, dbo.Shippers AS s
WHERE o.CustomerID = c.CustomerID
AND o.ShipVia = s.ShipperID
AND o.ShipCountry='UK'
AND YEAR(o.ShippedDate)='1997'
GROUP BY o.OrderID, c.ContactName, s.CompanyName, YEAR(o.ShippedDate);
Cái ví dụ 2. Bạn nào muốn gọp họ và tên vào chung 1 cột thì có thể thử cách này nha
select e.EmployeeID, e.FirstName +' '+ e.LastName as [Họ và tên],count(o.OrderID) as [Số đơn hàng bán được]
from Employees as e, Orders as o
where e.EmployeeID = o.EmployeeID
group by o.EmployeeID, e.EmployeeID, e.FirstName +' '+ e.LastName
SELECT o.[OrderID],c.[CompanyName], s.[CompanyName],year(o.(ShippedDate)),o.[Shipcountry]
from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s
where o.[CustomerID] = c.[CustomerID] and o.[ShipVia]=s.[ShipID] and o.[Shipcountry]='UK' and year(o.(ShippedDate))='1997'
SELECT 0.[OrderID],o.[CustomerID],s.[CompanyName],o.[ShipCountry],o.[ShippedDate]
FROM [dbo].[Customers] AS "c", [dbo].[Orders] AS "o", [dbo].[Shippers] AS "s"
WHERE o.[ShipCountry]='UK'AND YEAR(o.[ShippedDate])=1997 AND c.[CustomerID]=o.[CustomerID] AND o.[ShipVia]=s.[ShipperID];
BT
SELECT o.OrderID, c.ContactName, s.CompanyName
FROM dbo.Customers AS c, dbo.Orders AS o, dbo.Shippers AS s
WHERE c.CustomerID = o.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry = 'UK' AND YEAR(o.OrderDate) = 1997;
==> 30 dòng
Cám ơn anh :)
select o.OrderID,c.ContactName,s.CompanyName,o.ShipCountry,o.ShippedDate
from Orders as o,Customers as c,Shippers as s
where o.ShipCountry = 'UK'and YEAR(ShippedDate) = 1997 and o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID
select o.OrderID, c.ContactName, c.CompanyName, o.OrderID, o.OrderDate
from [dbo].[Customers] as c, [dbo].[Orders] as o, [dbo].[Shippers] as s
where o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID and o.ShipCountry ='UK' and year(o.OrderDate) = 1997
BT:
SELECT O.OrderID, C.ContactName, S.CompanyName, O.ShipCountry,
YEAR(O.ShippedDate) AS Year
FROM Orders AS O, Customers AS C, Shippers AS S
WHERE O.ShipCountry = 'UK' AND
C.CustomerID = O.CustomerID AND O.ShipVia = S.ShipperID AND
YEAR(O.ShippedDate) = 1997;
select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, o.ShippedDate
from Customers as c, Orders as o, Shippers as s
where c.CustomerID=o.CustomerID and o.ShipVia=s.ShipperID and o.ShipCountry like 'UK' and o.ShippedDate like '%1997%';
BT1:
SELECT o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, YEAR(o.OrderDate) AS "Year"
FROM [dbo].[Orders] AS o, [dbo].[Customers] AS c, [dbo].[Shippers] AS s
WHERE o.CustomerID=c.CustomerID AND o.ShipVia=s.ShipperID AND o.ShipCountry LIKE 'UK' AND YEAR(o.OrderDate)=1997
GROUP BY o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, YEAR(o.OrderDate);
SELECT o.OrderID, c.CompanyName as 'NameCustomers', s.CompanyName as 'NameShippers', o.ShipCountry, o.ShippedDate
FROM Customers AS c, Orders as o, Shippers as s
WHERE c.CustomerID = o.CustomerID AND s.ShipperID = o.ShipVia AND o.ShipCountry LIKE 'uk' AND YEAR(O.ShippedDate) = '1997';
VD bổ sung
SELECT C.CustomerID, C.CompanyName, C.ContactName,[ShipCountry], COUNT(O.[OrderID]) AS [TotalOders]
FROM [dbo].[Customers] AS C , [dbo].[Orders] AS O
WHERE C.CustomerID = O.CustomerID AND [ShipCountry] = 'UK'
GROUP BY C.CustomerID, C.CompanyName, C.ContactName,[ShipCountry];
SELECT o.[OrderID],c.[ContactName],c.[CompannyName], o.[ShipCountry], YEAR([ShippedDate]) FROM [Orders] AS o, [Customers] AS c WHERE o.[ShipCountry[='UK' AND YEAR([ShippedDate])=1997
use NORTHWND
select o.OrderID, c.ContactName, s.CompanyName, YEAR(o.ShippedDate) as "Year Shipped", o.ShipCountry
from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s
where c.CustomerID = o.CustomerID AND o.ShipVia = s.ShipperID AND o.ShipCountry = 'UK' AND YEAR(o.ShippedDate)=1997
Select O.OrderID,C.ContactName,S.CompanyName
From [dbo].[Orders] as O,[dbo].[Customers] as C, Shippers as S
Where O.ShipCountry ='UK' and Year(O.ShippedDate) =1997 and C.CustomerID = O.CustomerID and S.ShipperID = S.ShipperID
Group By O.OrderID,C.ContactName,S.CompanyName
select o.CustomerID , c.ContactName , s.CompanyName, o.ShipCountry, o.ShippedDate
from [dbo].[Customers] as c , [dbo].[Orders] as o ,[dbo].[Shippers] as s
where o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID and o.ShipCountry = 'UK' and year(o.ShippedDate) = 1997
group by o.CustomerID , c.ContactName , s.CompanyName, o.ShipCountry, o.ShippedDate
select o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry,
year(o.[ShippedDate]) as [year]
from [dbo].[Orders] as o, [dbo].[Customers] as c, [dbo].[Shippers] as s
where o.CustomerID = c.CustomerID and o.ShipVia = s.ShipperID
group by o.OrderID, c.ContactName, s.CompanyName, o.ShipCountry, o.ShippedDate
having o.ShipCountry like 'UK' and year(o.[ShippedDate])=1997
order by o.ShipCountry asc;
select o.OrderID, c.ContactName,s.CompanyName,o.ShipCountry,O.ShippedDate, count(o.OrderID)
from Customers as c , Orders as o , Shippers as s
where c.CustomerID=o.CustomerID and s.ShipperID=o.ShipVia
group by o.OrderID, c.ContactName,s.CompanyName ,o.ShippedDate,o.ShipCountry
having YEAR(o.ShippedDate) = '1997' and o.ShipCountry in ('UK');
SELECT o.OrderID, c.ContactName, s.CompanyName
FROM Customers AS c, Orders AS o, Shippers AS s
WHERE o.ShipVia=s.ShipperID AND c.CustomerID=o.CustomerID AND o.ShipCountry='UK' AND YEAR(o.ShippedDate)=1997
SELECT o.OrderID AS "Ma Don Hang" , c.ContactName AS "Ten Khach Hang", s.CompanyName AS "Ten Don Vi Van Chuyen"
FROM Orders AS o, Customers AS c, Shippers AS s
WHERE (c.CustomerID = o.CustomerID
AND
o.ShipVia = s.ShipperID )AND( o.ShipCountry LIKE "UK" AND Year(o.ShippedDate) = "1997" )
GROUP BY o.OrderID , c.ContactName , s.CompanyName
SELECT o.OrderID, c.ContactName, s.CompanyName
FROM Orders as o, Customers as c, Shippers as s
WHERE o.ShipCountry = 'UK' AND YEAR(o.OrderDate) = '1997' AND o.CustomerId = c.CustomerID AND s.ShipperID = o.ShipVia
ORDER BY c.ContactName DESC;
SELECT o.OrderID,c.ContactName,s.CompanyName,[ShippedDate]
FROM dbo.Orders AS o, dbo.Customers AS c, dbo.Shippers AS s
WHERE o.CustomerID=c.CustomerID AND s.ShipperID=o.ShipVia
AND o.ShipCountry ='UK' AND YEAR([ShippedDate])= 1997
GROUP BY o.OrderID,c.ContactName,s.CompanyName,[ShippedDate]
Em cảm ơn ạ
bt1
SELECT o.OrderID, c.ContactName, s.ShipperID, s.CompanyName, o.ShipCountry, o.OrderDate
FROM [dbo].[Customers] as c, [dbo].[Orders] as o, [dbo].[Shippers] as s
WHERE o.CustomerID = c.CustomerID AND
s.ShipperID = o.ShipVia AND
o.ShipCountry LIKE 'UK' AND
YEAR(o.OrderDate) = 1997
GROUP BY o.OrderID, c.ContactName, s.ShipperID, s.CompanyName, o.ShipCountry, o.OrderDate;
bt1
WITH t AS
(
SELECT o.OrderID , c.ContactName , s.CompanyName , Year(o.ShippedDate) 'Year' ,o.ShipCountry 'ShipCountry'
FROM Orders o
JOIN Customers c
ON o.CustomerID = c.CustomerID
JOIN Shippers s
ON o.ShipVia = s.ShipperID
GROUP BY o.OrderID , c.ContactName , s.CompanyName , Year(o.ShippedDate) ,o.ShipCountry
)
SELECT * FROM t
WHERE t.ShipCountry = 'UK'
and t.Year='1997'