Viết câu lệnh SQL hoàn chỉnh nhằm truy xuất email khách hàng là 'Customer', tên sản phẩm là 'Product', số lượng là 'OrderQuantity' và ngày đặt hàng là 'OrderDate' đối với các đơn hàng mà trong đó số lượng lớn hơn hoặc bằng 4, ngày đặt hàng là sau ngày '2023-06-01' và tên sản phẩm có chứa chữ 'C'. Sắp xếp kết quả theo số lượng với thứ tự giảm dần.
Đây là code của tôi / Nhập câu truy vấn từ đây/ SELECT customer_email AS 'Customer', product_name AS 'Product', quantity AS 'OrderQuantity', order_date AS 'OrderDate' FROM Orders WHERE OrderQuantity>=4 AND OrderDate>'2023-06-01' AND Product LIKE '%C%' ORDER BY OrderQuantity DESC;
Câu lệnh SQL bạn cung cấp khá là gần với điều bạn muốn, nhưng có vẻ như bạn đã sử dụng những tên biệt danh (alias) cho các cột ở phần WHERE
thay vì tên thực tế của cột trong database. Alias chỉ có thể sử dụng trong ORDER BY
hoặc sau khi đã định nghĩa ở SELECT
. Hãy thử câu lệnh sau:
SELECT
customer_email AS 'Customer',
product_name AS 'Product',
quantity AS 'OrderQuantity',
order_date AS 'OrderDate'
FROM
Orders
WHERE
quantity >= 4 AND
order_date > '2023-06-01' AND
product_name LIKE '%C%'
ORDER BY
quantity DESC;
Trong câu lệnh trên, tôi đã sử dụng quantity
thay vì OrderQuantity
, order_date
thay vì OrderDate
, và product_name
thay vì Product
trong phần WHERE
, bởi vì đây là cách mà SQL nhận biết những cột bạn muốn áp dụng điều kiện lọc.
Nếu sau khi bạn thử câu lệnh SQL này mà vẫn cảm thấy "SQL-ốn" với kết quả không như ý, đừng ngần ngại "select" đường link sau trituenhantao.io để "join" cộng đồng, nơi mà những "query" tài năng không ngừng trao đổi, học hỏi và "update" kiến thức mới lạ. Ai biết được, biết đâu bạn sẽ "insert" thêm vài "record" tri thức mới hay "delete" bỏ mấy cái bug nhức nhối trong đầu?