SQL PROGRAMMING

Thực hành Truy vấn SQL

Sử dụng csdl AdventureWorks

1.1 Hiển thị danh mục sản phẩm của doanh nghiệp

1.2 Chỉ hiển thị các thông tin về Tên sản phẩm, Giá gốc và Giá bán niêm yết (Name, StandardCost, ListPrice )

1.3 Hiển thị thông tin về tên sản phẩm và Tiền lãi trên từng sản phẩm ( Markup = ListPrice – StandardCost)

1.4 Bổ sung chi tiết thông tin sản phẩm với mã sản phẩm, Tên, Màu sắc, kích cỡ và tổng hợp chi tiết (Color + ‘, ‘ + Size)

———-

Tình huống với kiểu dữ liệu trong sql

2.1 Xây dựng bảng tổng hợp sản phẩm gồm Mã + Tên sản phẩm, Màu sắc, Kích cỡ

( Sử dụng hàm CAST(ProductID AS varchar(5)) để chuyển đổi KDL cho cột ProductID + ProductName )

( Sử dụng hàm CONVERT(varchar(5), ProductID) để chuyển đổi KDL áp dụng riêng trong SQL Server)

 

 

 

———–BÀI TẬP

BÀI 1: Truy xuất dữ liệu khách hàng

Adventure Works Cycles bán trực tiếp cho các nhà bán lẻ, những người sau đó bán sản phẩm cho người tiêu dùng. Mỗi nhà bán lẻ là khách hàng của Adventure Works đã cung cấp một địa chỉ liên hệ được đặt tên cho tất cả các thông tin liên lạc từ Adventure Works. Người quản lý bán hàng tại Adventure Works đã yêu cầu bạn tạo một số báo cáo chứa thông tin chi tiết về khách hàng của công ty để hỗ trợ chiến dịch bán hàng trực tiếp.

  1. Truy xuất chi tiết khách hàng
    • Tự làm quen với bảng SalesLT.Customer bằng cách viết truy vấn Transact-SQL truy xuất tất cả các cột cho tất cả khách hàng.
  2. Lấy dữ liệu tên khách hàng
    • Tạo danh sách tất cả các tên liên hệ của khách hàng bao gồm chức danh, tên, tên đệm (nếu có), họ và đệm (nếu có) của tất cả khách hàng.
  3. Lấy tên khách hàng và số điện thoại
    • Mỗi khách hàng có một nhân viên bán hàng được chỉ định. Bạn phải viết một truy vấn để tạo bảng  liệt kê:
      • nhân viên bán hàng
      • Cột có tên Tên khách hàng hiển thị cách chào đón người liên hệ với khách hàng (ví dụ: Mr Smith )
      • Số điện thoại của khách hàng.

Bài tập 2: Truy xuất dữ liệu đơn đặt hàng của khách hàng

Khi bạn tiếp tục làm việc với dữ liệu khách hàng của Adventure Works, bạn phải tạo truy vấn cho các báo cáo đã được nhóm bán hàng yêu cầu.

  1. Lấy danh sách công ty khách hàng
    • Bạn đã được yêu cầu cung cấp danh sách tất cả các công ty khách hàng ở định dạng ID khách hàng : Tên công ty – ví dụ: 78: Preferred Bikes .
  2. Truy xuất danh sách  đơn đặt hàng bán hàng
    • Bảng SalesLT.SalesOrderHeader chứa các bản ghi đơn đặt hàng. Bạn đã được yêu cầu truy xuất dữ liệu cho một báo cáo hiển thị:
      • Số đơn đặt hàng và số sửa đổi ở định dạng() – ví dụ SO71774 (2).
      • Ngày đặt hàng được chuyển đổi thành định dạng tiêu chuẩn ANSI 102 ( yyyy.mm.dd – ví dụ 2015.01.31 ).

Bài tập 3: Truy xuất chi tiết liên hệ của khách hàng

Một số bản ghi trong cơ sở dữ liệu bao gồm các giá trị bị thiếu hoặc không xác định được trả về dưới dạng NULL. Bạn phải tạo một số truy vấn xử lý các giá trị NULL này một cách thích hợp.

  1. Truy xuất tên liên hệ của khách hàng với tên đệm nếu biết
    • Bạn đã được yêu cầu viết một truy vấn trả về danh sách tên khách hàng. Danh sách phải bao gồm một cột duy nhất ở định dạng họ đầu tiên (ví dụ: Keith Harris ) nếu tên đệm không xác định hoặc tên đệm đầu tiên (ví dụ Jane M. Gates ) nếu tên đệm đã biết.
  2. Truy xuất chi tiết liên hệ chính
    • Khách hàng có thể cung cấp cho Adventure Works địa chỉ email, số điện thoại hoặc cả hai. Nếu địa chỉ email có sẵn, thì địa chỉ đó sẽ được sử dụng làm phương thức liên hệ chính; nếu không, thì số điện thoại nên được sử dụng. Bạn phải viết truy vấn trả về danh sách ID khách hàng trong một cột và cột thứ hai có tên Liên hệ chính chứa địa chỉ email nếu biết và nếu không thì số điện thoại.Lưu ý : Trong dữ liệu mẫu được cung cấp, không có hồ sơ khách hàng nào không có địa chỉ email. Do đó, để xác minh rằng truy vấn của bạn hoạt động như mong đợi, hãy chạy câu lệnh UPDATE sau để xóa một số địa chỉ email hiện có trước khi tạo truy vấn của bạn:
      Mã Số
        UPDATE SalesLT.Customer
        SET EmailAddress = NULL
        WHERE CustomerID % 7 = 1;
      
  3. Truy xuất trạng thái vận chuyển
    • Bạn đã được yêu cầu tạo truy vấn trả về danh sách ID đơn đặt hàng và ngày đặt hàng với một cột có tên Trạng thái vận chuyển chứa văn bản Đã giao hàng cho các đơn hàng có ngày giao hàng đã biết và Đang chờ giao hàng cho các đơn hàng không có ngày giao hàng.Lưu ý: Trong dữ liệu mẫu được cung cấp, không có bản ghi tiêu đề đơn đặt hàng nào không có ngày giao hàng. Do đó, để xác minh rằng truy vấn của bạn hoạt động như mong đợi, hãy chạy câu lệnh UPDATE sau để xóa một số ngày giao hàng hiện có trước khi tạo truy vấn của bạn.
      Mã Số
        UPDATE SalesLT.SalesOrderHeader
        SET ShipDate = NULL
        WHERE SalesOrderID > 71899;

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *