text:
Trước khi bạn bắt đầu
Về loạt bài này
Loạt bài hướng dẫn này dạy các chủ đề SQL từ cơ bản đến nâng cao và các chủ đề XQuery cơ bản. Nó cũng chỉ ra cách diễn đạt các câu hỏi nghiệp vụ thường gặp bằng các truy vấn cơ sở dữ liệu sử dụng các câu truy vấn SQL hay các câu truy vấn XQuery. Những người phát triển ứng dụng và những người quản trị cơ sở dữ liệu có thể sử dụng hướng dẫn này để nâng cao các kỹ năng truy vấn cơ sở dữ liệu của mình. Các thành viên tham gia sáng kiến học đường IBM có thể sử dụng loạt hướng dẫn này như một phần trong chương trình giảng dạy cơ sở dữ liệu của họ.
Tất cả các ví dụ trong bài này là dựa trên Aroma, một cơ sở dữ liệu mẫu chứa các dữ liệu doanh thu về các sản phẩm cà phê và chè đã bán trong các cửa hàng trên khắp nước Mỹ. Mỗi ví dụ gồm có ba phần:
- Một câu hỏi kinh doanh dưới dạng ngôn ngữ thường ngày
- Một hoặc nhiều ví dụ truy vấn , được biểu diễn bằng SQL hay Xquery
- Một bảng các kết quả trả về từ cơ sở dữ liệu
Hướng dẫn này được thiết kế để cho phép các học viên học tập ngôn ngữ SQL và XQuery. Cũng như học bất cứ cái gì khác, việc bổ sung thêm các bài tập thực hành là rất quan trọng. Dữ liệu và các định nghĩa bảng sẽ tạo điều kiện thuận lợi cho các bài tập thực hành này.
Đối với các sinh viên sử dụng tài liệu này như một phần của khoá học, hãy nhận từ thầy hướng dẫn của mình các chỉ dẫn để kết nối tới cơ sở dữ liệu Aroma và tìm hiểu mọi sự khác biệt giữa hướng dẫn và cài đặt tại máy cục bộ của mình.
Hướng dẫn này được viết cho DB2 9 Express-C trên nền UNIX®, Linux® và Windows® (trước đây gọi là Viper).
Về hướng dẫn này
Hướng dẫn này thảo luận về các truy vấn dùng để so sánh dữ liệu trong một cơ sở dữ liệu DB2 của IBM. Nó bắt đầu bằng cách minh họa vấn đề mà người viết truy vấn phải đối phó: cách sử dụng SQL để trả về một bảng tính hay báo cáo "tổng hợp" chứ không phải một tập hợp kết quả tiêu chuẩn, sắp xếp theo thứ tự thẳng đứng rất khó đọc. Vấn đề này được giải quyết bằng các biểu thức CASE hoặc các truy vấn phụ.
Giải pháp CASE, được giới thiệu đầu tiên, là một cách đơn giản và ngắn gọn để so sánh các nhóm các giá trị tương tự nhau. Tiếp theo sẽ trình bày một vài ví dụ của mệnh đề FROM và các truy vấn phụ của danh sách chọn lựa. Các truy vấn phụ này có thêm giá trị ở chỗ có thể vừa so sánh dữ liệu từ các nhóm khác nhau và vừa gồm các tính toán đối với các giá trị được so sánh, ví dụ như là các phần trăm đóng góp trong các thời hạn đã cho.
Hướng dẫn này mô tả các truy vấn phụ được tuyên bố như là các điều kiện trong mệnh đề WHERE, có ích cho các truy vấn so sánh đơn giản. Phần cuối cùng cũng mô tả các thuộc tính ALL, EXISTS, và SOME hoặc ANY. Các thuộc tínhnày có thể được dùng để biểu diễn các điều kiện đối với kết quả của truy vấn phụ.
Kết nối tới một cơ sở dữ liệu
Bạn cần kết nối tới một cơ sở dữ liệu trước khi có thể sử dụng các câu lệnh SQL để truy vấn hay xử lý dữ liệu. Lệnh CONNECT kết hợp một kết nối cơ sở dữ liệu với một tên người sử dụng.
Thông qua người hướng dẫn tìm ra tên cơ sở dữ liệu bạn cần nối tới. Đối với loạt bài này, tên cơ sở dữ liệu là aromadb.
Để kết nối tới cơ sở dữ liệu aromadb, gõ lệnh sau đây vào trong bộ xử lý dòng lệnh DB2:
CONNECT TO aromadb USER userid USING password
Thay thế "userid" và "password" bằng số ID và mật khẩu của người sử dụng mà bạn đã nhận được từ thầy hướng dẫn. Nếu máy không hỏi userid và password thì chỉ cần gõ vào lệnh sau đây:
CONNECT TO aromadb
Thông điệp sau báo cho bạn biết rằng đã tạo kết nối thành công:
Database Connection Information Database server = DB2/NT 9.0.0 SQL authorization ID = USERID Local database alias = AROMADB
Khi đã kết nối được, bạn có thể bắt đầu sử dụng cơ sở dữ liệu.
So sánh dữ liệu bằng câu hỏi SQL
Câu hỏi
So sánh doanh thu của cà phê đóng gói tại các cửa hàng ở vùng phía Tây trong năm 2004 ra sao?
Ví dụ truy vấn
SELECT store_name, prod_name, SUM(dollars) AS sales FROM aroma.market a, aroma.store b, aroma.period c, aroma.product d, aroma.class e, aroma.sales f WHERE a.mktkey = b.mktkey AND b.storekey = f.storekey AND c.perkey = f.perkey AND d.classkey = e.classkey AND d.classkey = f.classkey AND d.prodkey = f.prodkey AND region like 'West%' AND year = 2004 AND class_type = 'Pkg_coffee' GROUP BY store_name, prod_name ORDER BY store_name, prod_name;
Kết quả
Một truy vấn so sánh đơn giản
Bạn có thể liệt kê doanh thu của một nhóm các sản phẩm tại các cửa hàng cụ thể bằng một lệnh SELECT đơn giản, nhưng định dạng của bảng kết quả làm cho các giá trị khó so sánh được. Ví dụ, tập hợp kết quả của phần trên cho thấy cà phê La Antigua đã bán ra tại một vài cửa hàng trong vùng phía tây, nhưng các con số này rất khó tách ra.
Loại dữ liệu này sẽ dễ so sánh hơn nhiều khi nó được định dạng như một bảng tính. Có hai cách để tạo ra một báo cáo bảng tính, hay báo cáo "tổng hợp": sử dụng các biểu thức CASE hay các truy vấn phụ. Các ví dụ tiếp sau trong hướng dẫn này minh họa cả hai phương pháp viết các truy vấn so sánh.
Về truy vấn
Ví dụ truy vấn trả về các số doanh thu năm 2004 của các sản phẩm cà phê đóng gói bán tại mỗi cửa hàng trong vùng phía tây, nhưng định dạng của dữ liệu kết quả làm cho nó trở nên khó so sánh các con số theo từng sản phẩm, theo từng cửa hàng với nhau.
Sử dụng các biểu thức CASE
Câu hỏi
So sánh doanh thu của cà phê đóng gói tại các cửa hàng ở vùng phía Tây trong năm 2004 như thế nào?
Ví dụ truy vấn
SELECT prod_name, SUM(CASE WHEN store_name = 'Beaches Brew' then dollars else 0 end) AS Beaches, SUM(CASE WHEN store_name = 'Cupertino Coffee Supply' then dollars else 0 end) AS Cupertino, SUM(CASE WHEN store_name = 'Roasters, Los Gatos' then dollars else 0 end) AS RoastLG, SUM(CASE WHEN store_name = 'San Jose Roasting Company' then dollars else 0 end) AS SJRoastCo, SUM(CASE WHEN store_name = 'Java Judy''s' then dollars else 0 end) AS JavaJudy, SUM(CASE WHEN store_name = 'Instant Coffee' then dollars else 0 end) AS Instant FROM aroma.market a, aroma.store b, aroma.period c, aroma.product d, aroma.class e, aroma.sales f WHERE a.mktkey = b.mktkey AND b.storekey = f.storekey AND c.perkey = f.perkey AND d.classkey = e.classkey AND d.classkey = f.classkey AND d.prodkey = f.prodkey AND region LIKE 'West%' AND year = 2004 AND class_type = 'Pkg_coffee' GROUP BY prod_name ORDER BY prod_name;
Kết quả
Một giải pháp để so sánh dữ liệu: các biểu thức CASE
Một cách hiệu quả và ngắn gọn để hiển thị các giá trị so sánh theo một định dạng bảng tính dễ đọc là sử dụng các biểu thức CASE trong danh sách chọn lựa. Mỗi phép tính CASE đánh giá một biểu thức đã chỉ rõ và cung cấp một giá trị khác nhau, phụ thuộc vào một điều kiện nhất định có được đáp ứng hay không.
Cú pháp CASE
Nói chung, bạn xây dựng một truy vấn so sánh CASE bằng cách chỉ rõ những ràng buộc trên toàn bộ miền mà trên đó các kết quả được sinh ra trong mệnh đề WHERE của truy vấn chính hay là truy vấn ngoài. Sau đó, bạn phân chia kết quả thành các tập con với một biểu thức CASE trong danh sách lựa chọn:
CASE WHEN search_condition THEN result1 ELSE result2 END AS col_alias
Chú ý quan trọng: Một biểu thức CASE có thể ở một trong hai dạng: đơn giản hay có tìm kiếm. Ví dụ này sử dụng dạng có tìm kiếm. Để biết thêm chi tiết, tham khảo SQL Reference Guide (Hướng dẫn tham khảo SQL) .
Về truy vấn
Truy vấn này đặt ra cùng một câu hỏi kinh doanh giống như truy vấn trước trong hướng dẫn này. Tuy nhiên, trong trường hợp này biểu thức CASE được dùng để tạo ra sáu cột khác nhau trong tập hợp kết quả. Tập hợp kết quả này có chứa tổng các giá trị đôla, một cột cho mỗi cửa hàng.
Sử dụng các truy vấn phụ trong mệnh đề FROM
Câu hỏi
Doanh thu sản phẩm tại San Jose trong tháng Giêng 2004 so với doanh thu sản phẩm này hàng năm trong cùng thành phố trong cùng năm là như thế nào?
Ví dụ truy vấn
SELECT sales1.product, jan_04_sales, total_04_sales FROM (SELECT prod_name, SUM(dollars) FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND c.year = 2004 AND c.month = 'JAN' AND d.city LIKE 'San J%' GROUP BY a.prod_name) AS sales1(product, jan_04_sales) , (SELECT prod_name, SUM(dollars) AS total_04_sales FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND c.year = 2004 AND d.city LIKE 'San J%' GROUP BY a.prod_name) AS sales2(product, total_04_sales) WHERE sales1.product = sales2.product ORDER BY sales1.product;
Kết quả
Một giải pháp linh hoạt hơn: Các truy vấn phụ trong mệnh đề FROM
Một truy vấn phụ là biểu thức truy vấn bất kỳ trong dấu ngoặc xuất hiện bên trong câu hỏi khác. Một truy vấn phụ đôi khi được gọi là một truy vấn bên trong. Truy vấn bên trong hoạt động bên trong truy vấn phía ngoài, hay như là truy vấn con của một truy vấn cha mẹ.
Về truy vấn
Một giá trị thường được so sánh với một tổng của một tập hợp các giá trị. Ví dụ truy vấn so sánh doanh thu sản phẩm ở San Jose trong tháng Giêng 2004 với doanh thu ở San Jose suốt cả năm 2004. Loại truy vấn này yêu cầu các phép gộp hỗn hợp; bởi vậy, không thể viết loại truy vấn đó bằng các biểu thức CASE vì biểu thức CASE phải hoạt động theo các giá trị bên trong một nhóm đơn hay một phạm vi. Thay vào đó, các truy vấn phụ trong mệnh đề FROM được dùng để thực hiện so sánh.
Chú ý quan trọng: Bất kỳ truy vấn nào mà có thể được biểu diễn như một truy vấn phụ trong mệnh đề FROM cũng có thể được biểu diễn như một truy vấn phụ trong danh sách chọn lựa, như sẽ cho thấy ở phần sau trong hướng dẫn này.
Các lưu ý về cách dùng
Ví dụ truy vấn dựa vào tính linh hoạt của biểu thức truy vấn trong SQL tiêu chuẩn để kết nối các kết quả của hai truy vấn phụ. Để biết thêm thông tin chi tiết về các biểu thức truy vấn, xem SQL Reference Guide.
Các bảng dẫn xuất từ kết quả đánh giá của các truy vấn phụ có thể được kết nối với các tham chiếu bảng khác. Với mục đích này, một truy vấn phụ trong mệnh đề FROM phải có một tên tương quan. Ví dụ, các truy vấn phụ trong ví dụ này được đánh giá thành các bảng sau đây:
sales1(product, jan_04_sales) sales2(product, total_04_sales)
Phép nối các bảng này (qua cột Product) tạo ra một bảng phát sinh không tên có ba cột, là nguồn của ba mục của danh sách chọn lựa trong truy vấn chính:
product, jan_04_sales, total_04_sales
Thực hiện các tính toán và các so sánh
Câu hỏi
Doanh thu sản phẩm trong Tháng Giêng 2004 tại San Jose chiếm bao nhiêu phần trăm của doanh thu sản phẩm hàng năm trong cùng thành phố? Mười sản phẩm bán chạy nhất theo tỷ lệ phần trăm đó là gì?
Ví dụ truy vấn
SELECT sales1.product, jan_04_sales, total_04_sales, DEC((100.00 * jan_04_sales/total_04_sales),7,2) AS pct_of_04 FROM (SELECT a1.prod_name, SUM(dollars) FROM aroma.product a1, aroma.sales b1, aroma.period c1, aroma.store d1 WHERE a1.prodkey = b1.prodkey AND a1.classkey = b1.classkey AND c1.perkey = b1.perkey AND d1.storekey = b1.storekey AND c1.year = 2004 AND c1.month = 'JAN' AND d1.city LIKE 'San J%' GROUP BY a1.prod_name) AS sales1(product, jan_04_sales) , (SELECT a2.prod_name, SUM(dollars) FROM aroma.product a2, aroma.sales b2, aroma.period c2, aroma.store d2 WHERE a2.prodkey = b2.prodkey AND a2.classkey = b2.classkey AND c2.perkey = b2.perkey AND d2.storekey = b2.storekey AND c2.year = 2004 AND d2.city LIKE 'San J%' GROUP BY a2.prod_name) AS sales2(product, total_04_sales) WHERE sales1.product = sales2.product ORDER BY pct_of_04 DESC FETCH FIRST 10 ROWS ONLY;
Kết quả
Các tính toán với các truy vấn phụ của mệnh đề FROM
Tập hợp kết quả của một truy vấn so sánh có thể được sử dụng như dữ liệu nguồn cho các tính toán khác nhau. Ví dụ, một tổng doanh thu hàng tháng của một sản phẩm có thể được biểu diễn như phần đóng góp trong doanh thu hàng năm với cách tính toán tỷ lệ phần trăm đơn giản:
100.00 * monthly_sales / annual_sales
Các truy vấn phụ trong mệnh đề FROM có thể dùng để tính toán các tỷ lệ phần trăm hay phần đóng góp theo thị trường, theo sản phẩm và theo các khoảng thời gian.
Về truy vấn
Dựa vào ví dụ trước, truy vấn này tính toán các số doanh thu hàng tháng cho từng sản phẩm ở San Jose như phần đóng góp hoặc tỷ lệ phần trăm của doanh thu hàng năm của sản phẩm đó trong cùng thành phố. Tập hợp kết quả có thể tạo ra một danh sách xếp hạng dựa vào quyết định sắp xếp của bạn.
Các con số trong cột Pct_of_04 không tổng cộng thành 100 vì các con số này tương ứng với tỷ lệ phần trăm của một tháng trong một năm cho doanh thu của mỗi sản phẩm riêng lẻ, không phải tỷ lệ phần trăm của doanh thu hàng tháng trong toàn bộ doanh thu hàng năm.
Biểu đồ này cho thấy doanh thu trong tháng Giêng chiếm một vài phần trăm của doanh thu suốt cả năm. Ví dụ, các ấm chè được bán trong tháng Giêng chiếm10.69% của tổng doanh thu ấm chè năm.
Sử dụng các truy vấn phụ trong danh sách SELECT
Câu hỏi
Trong những ngày nào của tháng Mười Hai năm 2005 có các số doanh thu Lotta Latte tại công ty Roasting San Jose thấp hơn số doanh thu trung bình hàng ngày của cùng sản phẩm tại cùng cửa hàng trong tháng Mười Hai 2004? Hiển thị trung bình hằng ngày cho năm 2004 theo một cột riêng.
Ví dụ truy vấn
SELECT prod_name, store_name, date, dollars AS sales_05, (SELECT DEC(AVG(dollars),7,2) FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND year = 2004 AND month = 'DEC' AND store_name = 'San Jose Roasting Company' AND prod_name LIKE 'Lotta%') AS avg_04 FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND prod_name LIKE 'Lotta%' AND store_name = 'San Jose Roasting Company' AND year = 2005 AND month = 'DEC' AND dollars < (SELECT AVG(dollars) FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND year = 2004 AND month = 'DEC' AND store_name = 'San Jose Roasting Company' AND prod_name LIKE 'Lotta%');
Kết quả
So sánh bằng các truy vấn phụ của danh sách chọn lựa
Một truy vấn phụ có thể xuất hiện trong danh sách chọn lựa của một truy vấn chính chỉ khi nó trả về một hàng hay không trả về hàng nào. Loại truy vấn phụ này, gọi là truy vấn phụ vô hướng, có ích cho các so sánh kiểu bảng tính trong đó một loạt các giá trị được truy vấn chính trả về so sánh với một giá trị do truy vấn phụ trả về.
Về truy vấn
Truy vấn phụ của ví dụ này trả về các số doanh thu Lotta Latte hằng ngày tại công ty Roasting San Jose năm 2005 trong trường hợp số doanh thu đó thấp hơn số doanh thu trung bình hàng ngày tại cùng cửa hàng trong thời gian 2004. Cột Avg_04 có chứa chỉ một giá trị đơn lặp lại là giá trị trung bình năm 2004; giá trị giống nhau này sẽ xuất hiện trong cột đó bất kể số lượng các hàng trong tập hợp kết quả.
Cùng một truy vấn phụ giống như vậy xuất hiện hai lần trong truy vấn chính:
- Một lần như định nghĩa cột trong danh sách lựa chọn
- Một lần như một toán hạng của toán tử nhỏ hơn (<) trong một điều kiện của mệnh đề WHERE
Truy vấn này được xử lý theo thứ tự sau:
- Truy vấn phụ thứ hai, định nghĩa điều kiện tìm kiếm trong mệnh đề WHERE của truy vấn chính, được thực hiện.
- Giá trị dẫn xuất từ truy vấn phụ thứ hai được chèn vào vào trong mệnh đề WHERE của truy vấn chính.
- Truy vấn phụ của danh sách lựa chọn được thực hiện.
- Truy vấn chính được thực hiện.
Các lưu ý về cách dùng
Hàm vô hướng DEC được sử dụng trên cột Avg_04 của tập kết quả để cắt bớt các số doanh thu trung bình:
DEC(AVG(dollars),7,2)
Sử dụng các truy vấn phụ có tương quan
Câu hỏi
Doanh thu của từng sản phẩm riêng lẻ ở San Jose trong tháng Giêng 2004 so với doanh thu hàng năm trong cùng thành phố trong cùng năm là bao nhiêu?
Ví dụ truy vấn
SELECT p1.prod_name, SUM(s1.dollars) AS jan_04_sales, (SELECT SUM(s2.dollars) FROM aroma.product p2, aroma.sales s2, aroma.period d2, aroma.store r2 WHERE p2.prodkey = s2.prodkey AND p2.classkey = s2.classkey AND d2.perkey = s2.perkey AND r2.storekey = s2.storekey AND p1.prod_name = p2.prod_name AND d1.year = d2.year AND r1.city = r2.city) AS total_04_sales FROM aroma.store r1, aroma.sales s1, aroma.product p1, aroma.period d1 WHERE p1.prodkey = s1.prodkey AND p1.classkey = s1.classkey AND d1.perkey = s1.perkey AND r1.storekey = s1.storekey AND year = 2004 AND month = 'JAN' AND city LIKE 'San J%' GROUP BY p1.prod_name, d1.year, r1.city ORDER BY p1.prod_name;
Kết quả
Các truy vấn phụ có tương quan trong danh sách lựa chọn
Tuy các truy vấn phụ của danh sách lựa chọn phải trả về một giá trị đơn hay không có giá trị nào, thì các truy vấn phụ đó vẫn có thể được thực hiện nhiều hơn một lần do tham khảo đến các kết quả được truy vấn chính trả về. Theo cách này các truy vấn phụ có tương quan như vậy trong danh sách lựa chọn có thể cho cùng một kết quả như các truy vấn phụ trong mệnh đề FROM.
Một truy vấn phụ có tương quan có quan hệ chặt chẽ với truy vấn chính thông qua tham khảo chéo tới các giá trị cụ thể trong các hàng được truy vấn chính lấy ra. Ví dụ, một truy vấn phụ tương quan có thể tham chiếu các giá trị trong cột Month của truy vấn chính; bởi vậy, truy vấn phụ trả về một giá trị mới mỗi khi giá trị của cột Month thay đổi. Các tên tương quan của bảng được gán trong mệnh đề FROM biểu diễn các tham khảo chéo này.
Về truy vấn
Ví dụ truy vấn đưa ra câu hỏi kinh doanh giống như truy vấn trước đó, nhưng lại đặt truy vấn phụ trong danh sách lựa chọn thay vì trong mệnh đề FROM. Truy vấn so sánh doanh thu của các sản phẩm ở San Jose trong tháng giêng 2004 với doanh thu hàng năm của các sản phẩm ở San Jose trong cùng năm.
Để làm cho truy vấn phụ có khả năng trả về một loạt các giá trị thay cho một giá trị cố định ba tham khảo chéo gắn truy vấn phụ với truy vấn chính:
p1.prod_name = p2.prod_name d1.year = d2.year r1.city = r2.city
Các tên tương quan p2, d2, và r2, được định nghĩa trong mệnh đề FROM của truy vấn phụ, loại bỏ tình trạng không rõ ràng. Mỗi điều kiện tương quan tham chiếu một sản phẩm, năm và thành phố cụ thể trong hàng hiện đang được câu hỏi chính xử lý. Các tham khảo chéo này đôi khi được gọi là các tham khảo ngoài.
Các lưu ý về cách dùng
Khi một hàm gộp xuất hiện trong danh sách lựa chọn của truy vấn chính, cần phải có một mệnh đề GROUP BY. Các tên cột được tham chiếu trong một điều kiện tương quan của một truy vấn phụ phải xuất hiện trong mệnh đề GROUP BY của truy vấn chính; vì vậy, các cột sau đây phải được liệt kê trong mệnh đề GROUP BY cũng như cột Prod_Name:
d1.year, r1.city
Sử dụng các tham khảo chéo
Câu hỏi
Doanh thu hàng tháng của Lotta Latte ở San Jose trong ba tháng đầu tiên của 2005 và 2004 là bao nhiêu?
Ví dụ truy vấn
SELECT q.prod_name, e.month, SUM(dollars) AS sales_05, (SELECT SUM(dollars) FROM aroma.store t, aroma.sales s, aroma.product p, aroma.period d WHERE t.storekey = s.storekey AND p.classkey = s.classkey AND p.prodkey = s.prodkey AND d.perkey = s.perkey AND d.month = e.month AND d.year = e.year-1 AND p.prod_name = q.prod_name AND t.city = u.city) AS sales_04 FROM aroma.store u, aroma.product q, aroma.period e, aroma.sales l WHERE u.storekey = l.storekey AND q.classkey = l.classkey AND q.prodkey = l.prodkey AND e.perkey = l.perkey AND qtr = 'Q1_05' AND prod_name LIKE 'Lotta Latte%' AND city like 'San J%' GROUP BY q.prod_name, e.month, e.year, u.city;
Kết quả
Các tham khảo chéo với các biểu thức
Các tham khảo chéo trong các truy vấn phụ không chỉ hạn chế tới các tên cột đầy đủ; chúng có thể cũng là các biểu thức. Ví dụ, các biểu thức sau đây là các tham khảo chéo hợp lệ:
period.year-1 (previous year) period.quarter-1 (previous quarter)
Loại tham khảo chéo tổng quát hóa này làm đơn giản hóa việc thiết kế các công cụ ứng dụng phía khách.
Về truy vấn
Truy vấn này trả về doanh thu Lotta Latte hàng tháng ở San Jose trong ba tháng đầu tiên của cả năm 2005 lẫn 2004. Giải pháp tương quan là kết quả mong đợi có chứa dữ liệu cùng các tháng nhưng khác năm.
Mệnh đề FROM của truy vấn chính gán các tên tương quan cho tất cả các bảng có liên kết với nhau:
FROM aroma.store u, aroma.product q, aroma.period e, aroma.sales l
Truy vấn phụ sau đó gắn việc thực hiện của nó với việc thực hiện truy vấn chính dựa vào các điều kiện sau trong mệnh đề WHERE:
d.month = e.month d.year = e.year-1 p.prod_name = q.prod_name t.city = u.city
Do truy vấn chính lấy ra các hàng nên các giá trị của mỗi cột trong truy vấn cha mẹ có thể thay đổi, và các điều kiện tương quan truyền sự thay đổi này tới truy vấn phụ. Mối tham khảo chéo tới năm trước có dạng year-1 làm tổng quát hóa truy vấn phụ bằng cách loại bỏ một giá trị không đổi (2004).
Muốn thay đổi truy vấn để báo cáo theo các thời hạn năm khác, chỉ cần thay đổi ràng buộc về năm trong truy vấn chính.
Các lưu ý về cách dùng
Mỗi khi có thể, hãy tổng quát hóa các truy vấn phụ có tương quan và giảm thiểu sự tương tác của người sử dụng bằng cách dùng các tham khảo chéo dạng biểu thức.
Tính toán các tỷ lệ phần trăm của quý và năm
Câu hỏi
Các tổng số doanh thu hàng tháng trong quý đầu tiên của năm 2004 của các sản phẩm đã bán theo các túi một bảng ở San Jose là bao nhiêu? Tỷ lệ phần trăm của doanh thu mỗi tháng so với cả quý và so với cả năm là bao nhiêu?
Ví dụ truy vấn
SELECT pj.prod_name, dj.month, SUM(dollars) AS mon_sales_04, DEC(100 * DEC(SUM(dollars))/ (SELECT SUM(si.dollars) FROM aroma.store ri, aroma.sales si, aroma.product pi, aroma.period di WHERE si.storekey = ri.storekey AND si.classkey = pi.classkey AND si.prodkey = pi.prodkey AND si.perkey = di.perkey AND di.qtr = dj.qtr AND di.year = dj.year AND pi.prod_name = pj.prod_name AND pi.pkg_type = pj.pkg_type AND ri.city = rj.city), 7, 2) AS pct_qtr1, DEC(100 * DEC(SUM(dollars))/ (SELECT SUM(si.dollars) FROM aroma.store ri, aroma.sales si, aroma.product pi, aroma.period di WHERE si.storekey = ri.storekey AND si.classkey = pi.classkey AND si.prodkey = pi.prodkey AND si.perkey = di.perkey AND di.year = dj.year AND pi.prod_name = pj.prod_name AND pi.pkg_type = pj.pkg_type AND ri.city = rj.city), 7, 2) AS pct_yr FROM aroma.store rj, aroma.sales sj, aroma.product pj, aroma.period dj WHERE sj.storekey = rj.storekey AND sj.classkey = pj.classkey AND sj.prodkey = pj.prodkey AND sj.perkey = dj.perkey AND rj.city = 'San Jose' AND dj.year = 2004 AND dj.qtr = 'Q1_04' AND pkg_type = 'One-pound bag' GROUP BY pj.prod_name, dj.month, dj.qtr, dj.year, pj.pkg_type, rj.city ORDER BY pj.prod_name, pct_qtr1 desc;
Kết quả
Tính toán với các truy vấn phụ của danh sách lựa chọn
Các tỷ lệ phần trăm hàng tháng so với cả quý, cả năm hay các kỳ hạn khác có thể được tính toán với một truy vấn phụ trong danh sách lựa chọn. Truy vấn chính lấy ra các số doanh thu hàng tháng và hai truy vấn phụ lấy ra các con số doanh thu hàng quý và hàng năm. Các tỷ lệ phần trăm hàng tháng chỉ cần các tính toán đơn giản: các tỷ số của doanh thu hàng tháng so với quý và doanh thu hàng tháng so với năm.
Về truy vấn
Ví dụ truy vấn này tính toán các tỷ lệ phần trăm doanh thu hàng tháng so với quý và doanh thu hàng tháng so với năm cho các sản phẩm cà phê đã chọn được bán ở San Jose trong quý 1 năm 2004. Sau khi tính toán các tỷ lệ phần trăm, truy vấn này sắp xếp bảng kết quả theo sản phẩm và tỷ lệ phần trăm hàng quý theo thứ tự giảm dần.
Sử dụng các truy vấn phụ trong mệnh đề WHERE
Câu hỏi
Trong những ngày nào trong tháng Sáu năm 2005 các số doanh thu Lotta Latte tại các cửa hàng ở hạt Chicago thấp hơn số doanh thu trung bình hàng ngày của cùng sản phẩm trong hạt này trong tháng Sáu 2004?
Ví dụ truy vấn
SELECT prod_name, district, date, dollars AS sales_05 FROM aroma.market a, aroma.store b, aroma.sales c, aroma.product d, aroma.period e WHERE a.mktkey = b.mktkey AND b.storekey = c.storekey AND d.classkey = c.classkey AND d.prodkey = c.prodkey AND e.perkey = c.perkey AND prod_name like 'Lotta%' AND district like 'Chic%' AND year = 2005 AND month = 'JUN' AND dollars < (SELECT AVG(dollars) FROM aroma.market a, aroma.store b, aroma.sales c, aroma.product d, aroma.period e WHERE a.mktkey = b.mktkey AND b.storekey = c.storekey AND d.classkey = c.classkey AND d.prodkey = c.prodkey AND e.perkey = c.perkey AND prod_name like 'Lotta%' AND district like 'Chic%' AND year = 2004 AND month = 'JUN') ORDER BY date;
Kết quả
Về truy vấn
Truy vấn này trả về các số doanh thu Lotta Latte tại các cửa hàng ở hạt Chicago trong năm 2005 cho những ngày có doanh thu thấp hơn số doanh thu trung bình hàng ngày của Lotta Latte trong cùng thành phố trong năm 2004.
Truy vấn phụ trong ví dụ này là vô hướng – nó tạo ra một giá trị. Sau khi truy vấn phụ đã tính toán số đôla trung bình cho mỗi ngày ở Chicago trong năm 2004, giá trị trung bình này được sử dụng như một ràng buộc trên tất cả các hàng được truy vấn chính trả về. Chỉ các số nào trong năm 2005 thấp hơn so với trung bình năm 2004 mới được hiển thị trong tập kết quả; số trung bình tự nó không thể được hiển thị trừ khi truy vấn phụ được di chuyển vào trong danh sách lựa chọn hay mệnh đề FROM.
Các lưu ý về cách dùng
Thứ tự lôgíc của việc xử lý truy vấn bắt buộc rằng những ràng buộc của mệnh đề WHERE được máy chủ áp dụng ngay lập tức sau khi các bảng trong mệnh đề FROM đã được nối và trước bất kỳ sự tính toán nào với các hàm tập hợp như AVG và SUM, vân vân. Vì thế, bạn không thể sử dụng một trong số các hàm đó trong một điều kiện tìm kiếm đơn giản trong mệnh đề WHERE.
Sử dụng các thuộc tính so sánh
Câu hỏi
Sản phẩm nào đã ghi nhận có tổng doanh thu hàng ngày cao nhất ở Hartford, Connecticut, trong tháng Giêng 2006?
Ví dụ truy vấn
SELECT prod_name, date, dollars FROM aroma.store a, aroma.sales b, aroma.product c, aroma.period d WHERE a.storekey = b.storekey AND c.prodkey = b.prodkey AND c.classkey = b.classkey AND d.perkey = b.perkey AND year = 2006 AND city = 'Hartford' AND month = 'JAN' AND dollars >= ALL (SELECT dollars FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND year = 2006 AND city = 'Hartford' AND month = 'JAN');
Kết quả
Về truy vấn
Ví dụ truy vấn trả về tên sản phẩm được ghi nhận có tổng doanh thu hàng ngày cao nhất tại Hartford, Connecticut, trong tháng Giêng 2006 và ngày tháng cụ thể khi tổng số đó được ghi nhận. Truy vấn có thể được viết lại để trả về tổng số thấp nhất khi thay toán tử lớn hoặc bằng (>=) bằng toán tử nhỏ hơn hoặc bằng (<=).
Thuộc tính ANY/SOME
Bạn cũng có thể đánh giá từng kết quả trả về trong lệnh chọn lựa so với một hoặc nhiều giá trị được một truy vấn phụ lấy ra. Nếu có bất kỳ đánh giá nào là đúng, tập kết quả sẽ được trả về. Các từ khóa ANY và SOME có ý nghĩa giống nhau trong kiểu truy vấn này.
Câu hỏi
Liệt kê các tên của tất cả các cửa hàng nằm trong các thành phố có đặt trụ sở chính.
Truy vấn mẫu (ANY hay SOME)
SELECT store_name FROM aroma.store WHERE city = ANY (SELECT hq_city FROM aroma.market) ORDER BY state, city, store_name;
Kết quả
Các lưu ý về cách dùng
Trước tiên hệ thống thực hiện lệnh SELECT bên trong và lưu trữ danh sách của các giá trị HQ_CITY trong một bảng tạm thời. Sau đó nó đánh giá mỗi hàng từ danh sách SELECT bên ngoài đối với bảng này. Nếu giá trị CITY bằng với một hoặc nhiều hàng của kết quả truy vấn bên trong, nó được trả về trong tập kết quả.
Các thuộc tính so sánh trong các truy vấn phụ
Các thuộc tính ALL, ANY, SOME, và EXISTS rất có ích để biểu diễn các điều kiện trên các nhóm các giá trị được một truy vấn phụ lấy ra. Một thuộc tính so sánh tuyên bố một quan hệ lôgíc giữa hai giá trị: đối với một hàng đã cho, kết quả so sánh là đúng, sai hay không biết. (Các thuộc tính ANY và SOME là đồng nghĩa.)
Để biết thêm chi tiết về các thuộc tính này, xem SQL Reference Guide.
Tóm tắt
Hướng dẫn này mô tả cách viết các truy vấn để so sánh dữ liệu và hiển thị các kết quả theo một định dạng dễ đọc. Nhiều cách tiếp cận khác nhau được minh họa:
- Các biểu thức CASE
- Các truy vấn phụ của mệnh đề FROM
- Các truy vấn phụ của danh sách lựa chọn, bao gồm các truy vấn phụ có tương quan
- Các truy vấn phụ của mệnh đề WHERE
Các truy vấn so sánh
Hướng dẫn này kết thúc bằng việc giới thiệu về các thuộc tính so sánh ALL, ANY, SOME, và EXISTS có thể được sử dụng thay cho các phép so sánh toán học như là các điều kiện trên kết quả truy vấn phụ.
Một số ví dụ phức tạp hơn đã cho thấy cách bao gồm các tính toán vào trong các truy vấn so sánh, như các tỷ lệ phần trăm để biểu diễn phần đóng góp của quý hay phần đóng góp của năm.
Chú ý quan trọng: Nói chung, việc thực hiện truy vấn nhanh chóng hơn khi các truy vấn so sánh sử dụng các biểu thức CASE hơn là các truy vấn phụ. Tuy nhiên, nếu các truy vấn phụ là cần thiết, phương pháp được ưa thích là sử dụng mệnh đề FROM hơn là danh sách lựa chọn. Vì mỗi cơ sở dữ liệu và mỗi truy vấn là khác nhau, bạn nên thử nhiều phương pháp khác nhau trên cơ sở dữ liệu đang dùng.
Tải về
Tài nguyên
Học tập
- Xem "Phụ lục A" của loạt bài này (developerWorks, 08. 2006).
- Đọc "Hướng dẫn đánh giá XML DB2" (developerWorks, 06.2006), Tài liệu hướng dẫn từng bước giới thiệu cho người đọc về máy chủ dữ liệu Viper DB2 trên nền Windows, sử dụng khả năng lưu trữ và tìm kiếm XML (SQL/XML, XQuery) sẵn có để hỗ trợ các ứng dụng thế hệ kế tiếp.
- Xem bài này và bài "Hứng khởi bắt đầu nhanh với DB2 Viper" (developerWorks, 03.2006).
- Tìm hiểu cách làm thế nào để "Truy vấn dữ liệu XML trong DB2 với XQuery" (developerWorks, 04.2006).
- Tìm hiểu cách làm thế nào để "Truy vấn dữ liệu XML trong DB2 với SQL" (developerWorks, 03.2006).
- Đọc Đọc Tập san các hệ thống của IBM và kỷ niệm 10 năm của XML.
- Xem Tài liệu Tham khảo SQL, tập 1 để xem các thông tin bổ sung.
- Xem Tài liệu Tham khảo SQL, tập 2 để xem các thông tin bổ sung.
- Xem Trung tâm thông tin DB2 để khắc phục sự cố.
- Xem Không gian hỗ trợ kỹ thuật XML DB2 để nhận được các liên kết tới hơn 25 bài báo về các khả năng của XML DB2.
Lấy sản phẩm và công nghệ
- Hiện nay bạn có thể sử dụng DB2 miễn phí. Tải xuống DB2 Express-C, một phiên bản DB2 Express miễn phí dành cho cộng đồng nhưng vẫn có đủ các đặc tính dữ liệu cốt lõi giống như phiên bản DB2 Express và cung cấp một cơ sở vững chắc để xây dựng và triển khai các ứng dụng.
Thảo luận
Bình luận
-
Vùng dữ liệu trên developerWorks
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
-
Vùng mã nguồn mở trên developerWorks
Xem các bài viết về HTML, CSS, JavaScript,...
-
Điện toán đám mây
Tìm hiểu về điện toán đám mây

markdown:
## Trước khi bạn bắt đầu
### Về loạt bài này
Loạt bài hướng dẫn này dạy các chủ đề SQL từ cơ bản đến nâng cao và các chủ đề XQuery cơ bản. Nó cũng chỉ ra cách diễn đạt các câu hỏi nghiệp vụ thường gặp bằng các truy vấn cơ sở dữ liệu sử dụng các câu truy vấn SQL hay các câu truy vấn XQuery. Những người phát triển ứng dụng và những người quản trị cơ sở dữ liệu có thể sử dụng hướng dẫn này để nâng cao các kỹ năng truy vấn cơ sở dữ liệu của mình. Các thành viên tham gia sáng kiến học đường IBM có thể sử dụng loạt hướng dẫn này như một phần trong chương trình giảng dạy cơ sở dữ liệu của họ.
Tất cả các ví dụ trong bài này là dựa trên
**Aroma**, một cơ sở dữ
liệu mẫu chứa các dữ liệu doanh thu về các sản phẩm cà phê và chè đã
bán trong các cửa hàng trên khắp nước Mỹ. Mỗi ví dụ gồm có ba
phần:
- Một câu hỏi kinh doanh dưới dạng ngôn ngữ thường ngày
- Một hoặc nhiều ví dụ truy vấn , được biểu diễn bằng SQL hay Xquery
- Một bảng các kết quả trả về từ cơ sở dữ liệu
Hướng dẫn này được thiết kế để cho phép các học viên học tập ngôn ngữ SQL và XQuery. Cũng như học bất cứ cái gì khác, việc bổ sung thêm các bài tập thực hành là rất quan trọng. Dữ liệu và các định nghĩa bảng sẽ tạo điều kiện thuận lợi cho các bài tập thực hành này.
Đối với các sinh viên sử dụng tài liệu này như một phần của khoá học, hãy nhận từ thầy hướng dẫn của mình các chỉ dẫn để kết nối tới cơ sở dữ liệu Aroma và tìm hiểu mọi sự khác biệt giữa hướng dẫn và cài đặt tại máy cục bộ của mình.
Hướng dẫn này được viết cho DB2 9 Express-C trên nền UNIX®, Linux® và Windows® (trước đây gọi là Viper).
### Về hướng dẫn này
Hướng dẫn này thảo luận về các truy vấn dùng để so sánh dữ liệu trong một cơ sở dữ liệu DB2 của IBM. Nó bắt đầu bằng cách minh họa vấn đề mà người viết truy vấn phải đối phó: cách sử dụng SQL để trả về một bảng tính hay báo cáo "tổng hợp" chứ không phải một tập hợp kết quả tiêu chuẩn, sắp xếp theo thứ tự thẳng đứng rất khó đọc. Vấn đề này được giải quyết bằng các biểu thức CASE hoặc các truy vấn phụ.
Giải pháp CASE, được giới thiệu đầu tiên, là một cách đơn giản và ngắn gọn để so sánh các nhóm các giá trị tương tự nhau. Tiếp theo sẽ trình bày một vài ví dụ của mệnh đề FROM và các truy vấn phụ của danh sách chọn lựa. Các truy vấn phụ này có thêm giá trị ở chỗ có thể vừa so sánh dữ liệu từ các nhóm khác nhau và vừa gồm các tính toán đối với các giá trị được so sánh, ví dụ như là các phần trăm đóng góp trong các thời hạn đã cho.
Hướng dẫn này mô tả các truy vấn phụ được tuyên bố như là các điều kiện trong mệnh đề WHERE, có ích cho các truy vấn so sánh đơn giản. Phần cuối cùng cũng mô tả các thuộc tính ALL, EXISTS, và SOME hoặc ANY. Các thuộc tínhnày có thể được dùng để biểu diễn các điều kiện đối với kết quả của truy vấn phụ.
### Kết nối tới một cơ sở dữ liệu
Bạn cần kết nối tới một cơ sở dữ liệu trước khi có thể sử dụng các câu lệnh SQL để truy vấn hay xử lý dữ liệu. Lệnh CONNECT kết hợp một kết nối cơ sở dữ liệu với một tên người sử dụng.
Thông qua người hướng dẫn tìm ra tên cơ sở dữ liệu bạn cần nối tới. Đối với loạt bài này, tên cơ sở dữ liệu là aromadb.
Để kết nối tới cơ sở dữ liệu aromadb, gõ lệnh sau đây vào trong bộ xử lý dòng lệnh DB2:
CONNECT TO aromadb USER userid USING password
Thay thế "userid" và "password" bằng số ID và mật khẩu của người sử dụng mà bạn đã nhận được từ thầy hướng dẫn. Nếu máy không hỏi userid và password thì chỉ cần gõ vào lệnh sau đây:
CONNECT TO aromadb
Thông điệp sau báo cho bạn biết rằng đã tạo kết nối thành công:
Database Connection Information Database server = DB2/NT 9.0.0 SQL authorization ID = USERID Local database alias = AROMADB
Khi đã kết nối được, bạn có thể bắt đầu sử dụng cơ sở dữ liệu.
## So sánh dữ liệu bằng câu hỏi SQL
### Câu hỏi
So sánh doanh thu của cà phê đóng gói tại các cửa hàng ở vùng phía Tây trong năm 2004 ra sao?
#### Ví dụ truy vấn
SELECT store_name, prod_name, SUM(dollars) AS sales FROM aroma.market a, aroma.store b, aroma.period c, aroma.product d, aroma.class e, aroma.sales f WHERE a.mktkey = b.mktkey AND b.storekey = f.storekey AND c.perkey = f.perkey AND d.classkey = e.classkey AND d.classkey = f.classkey AND d.prodkey = f.prodkey AND region like 'West%' AND year = 2004 AND class_type = 'Pkg_coffee' GROUP BY store_name, prod_name ORDER BY store_name, prod_name;
### Kết quả
|STORE_NAME||PROD_NAME||SALES|
|Beaches Brew||Aroma Roma||3483.50|
|Beaches Brew||Cafe Au Lait||3129.50|
|Beaches Brew||Colombiano||2298.25|
|Beaches Brew||Demitasse Ms||4529.25|
|Beaches Brew||Expresso XO||4132.75|
|Beaches Brew||La Antigua||4219.75|
|Beaches Brew||Lotta Latte||3468.00|
|Beaches Brew||NA Lite||4771.00|
|Beaches Brew||Veracruzano||4443.00|
|Beaches Brew||Xalapa Lapa||4304.00|
|Cupertino Coffee Supply||Aroma Roma||4491.00|
|Cupertino Coffee Supply||Cafe Au Lait||4375.50|
|Cupertino Coffee Supply||Colombiano||2653.50|
|Cupertino Coffee Supply||Demitasse Ms||3936.50|
|Cupertino Coffee Supply||Expresso XO||4689.25|
|Cupertino Coffee Supply||La Antigua||2932.00|
|Cupertino Coffee Supply||Lotta Latte||5146.00|
|Cupertino Coffee Supply||NA Lite||4026.00|
|Cupertino Coffee Supply||Veracruzano||3285.00|
|Cupertino Coffee Supply||Xalapa Lapa||5784.00|
|Instant Coffee||Aroma Roma||3485.25|
|Instant Coffee||Cafe Au Lait||3599.50|
|Instant Coffee||Colombiano||3321.75|
|Instant Coffee||Demitasse Ms||5422.25|
|Instant Coffee||Expresso XO||2851.00|
|Instant Coffee||La Antigua||2937.25|
|Instant Coffee||Lotta Latte||4783.50|
|Instant Coffee||NA Lite||3740.00|
|Instant Coffee||Veracruzano||4712.00|
|Instant Coffee||Xalapa Lapa||3698.00|
|...|
### Một truy vấn so sánh đơn giản
Bạn có thể liệt kê doanh thu của một nhóm các sản phẩm tại các cửa hàng cụ thể bằng một lệnh SELECT đơn giản, nhưng định dạng của bảng kết quả làm cho các giá trị khó so sánh được. Ví dụ, tập hợp kết quả của phần trên cho thấy cà phê La Antigua đã bán ra tại một vài cửa hàng trong vùng phía tây, nhưng các con số này rất khó tách ra.
Loại dữ liệu này sẽ dễ so sánh hơn nhiều khi nó được định dạng như một bảng tính. Có hai cách để tạo ra một báo cáo bảng tính, hay báo cáo "tổng hợp": sử dụng các biểu thức CASE hay các truy vấn phụ. Các ví dụ tiếp sau trong hướng dẫn này minh họa cả hai phương pháp viết các truy vấn so sánh.
#### Về truy vấn
Ví dụ truy vấn trả về các số doanh thu năm 2004 của các sản phẩm cà phê đóng gói bán tại mỗi cửa hàng trong vùng phía tây, nhưng định dạng của dữ liệu kết quả làm cho nó trở nên khó so sánh các con số theo từng sản phẩm, theo từng cửa hàng với nhau.
## Sử dụng các biểu thức CASE
### Câu hỏi
So sánh doanh thu của cà phê đóng gói tại các cửa hàng ở vùng phía Tây trong năm 2004 như thế nào?
#### Ví dụ truy vấn
SELECT prod_name, SUM(CASE WHEN store_name = 'Beaches Brew' then dollars else 0 end) AS Beaches, SUM(CASE WHEN store_name = 'Cupertino Coffee Supply' then dollars else 0 end) AS Cupertino, SUM(CASE WHEN store_name = 'Roasters, Los Gatos' then dollars else 0 end) AS RoastLG, SUM(CASE WHEN store_name = 'San Jose Roasting Company' then dollars else 0 end) AS SJRoastCo, SUM(CASE WHEN store_name = 'Java Judy''s' then dollars else 0 end) AS JavaJudy, SUM(CASE WHEN store_name = 'Instant Coffee' then dollars else 0 end) AS Instant FROM aroma.market a, aroma.store b, aroma.period c, aroma.product d, aroma.class e, aroma.sales f WHERE a.mktkey = b.mktkey AND b.storekey = f.storekey AND c.perkey = f.perkey AND d.classkey = e.classkey AND d.classkey = f.classkey AND d.prodkey = f.prodkey AND region LIKE 'West%' AND year = 2004 AND class_type = 'Pkg_coffee' GROUP BY prod_name ORDER BY prod_name;
### Kết quả
|PROD_NAME||BEACHES||CUPERTINO||ROASTLG||SJROASTCO||JAVAJUDY||INSTANT|
|Aroma Roma||3483.50||4491.00||4602.00||4399.25||3748.25||3485.25|
|Cafe Au Lait||3129.50||4375.50||4199.00||3620.00||4864.50||3599.50|
|Colombiano||2298.25||2653.50||4205.00||3530.75||3509.00||3321.75|
|Demitasse Ms||4529.25||3936.50||4347.75||5699.00||6395.25||5422.25|
|Expresso XO||4132.75||4689.25||4234.50||3811.00||5012.25||2851.00|
|La Antigua||4219.75||2932.00||3447.50||4323.00||2410.25||2937.25|
|Lotta Latte||3468.00||5146.00||4469.50||5103.50||4003.00||4783.50|
|NA Lite||4771.00||4026.00||3250.00||2736.00||4791.00||3740.00|
|Veracruzano||4443.00||3285.00||4467.00||3856.00||4510.00||4712.00|
|Xalapa Lapa||4304.00||5784.00||3906.00||3645.00||3182.00||3698.00|
### Một giải pháp để so sánh dữ liệu: các biểu thức CASE
Một cách hiệu quả và ngắn gọn để hiển thị các giá trị so sánh theo một định dạng bảng tính dễ đọc là sử dụng các biểu thức CASE trong danh sách chọn lựa. Mỗi phép tính CASE đánh giá một biểu thức đã chỉ rõ và cung cấp một giá trị khác nhau, phụ thuộc vào một điều kiện nhất định có được đáp ứng hay không.
### Cú pháp CASE
Nói chung, bạn xây dựng một truy vấn so sánh CASE bằng cách chỉ rõ những ràng buộc trên toàn bộ miền mà trên đó các kết quả được sinh ra trong mệnh đề WHERE của truy vấn chính hay là truy vấn ngoài. Sau đó, bạn phân chia kết quả thành các tập con với một biểu thức CASE trong danh sách lựa chọn:
CASE WHEN search_condition THEN result1 ELSE result2 END AS col_alias
|search_condition||Một điều kiện lôgíc được đánh giá đúng hay sai.|
|result1||Một giá trị được dùng khi search_condition là đúng.|
|result2||Một giá trị mặc định khi search_condition là sai.|
Chú ý quan trọng: Một biểu thức CASE có thể ở một trong hai
dạng: đơn giản hay có tìm kiếm. Ví dụ này sử dụng dạng có tìm
kiếm. Để biết thêm chi tiết, tham khảo
*. SQL Reference Guide (Hướng
dẫn tham khảo SQL) *
#### Về truy vấn
Truy vấn này đặt ra cùng một câu hỏi kinh doanh giống như truy vấn trước trong hướng dẫn này. Tuy nhiên, trong trường hợp này biểu thức CASE được dùng để tạo ra sáu cột khác nhau trong tập hợp kết quả. Tập hợp kết quả này có chứa tổng các giá trị đôla, một cột cho mỗi cửa hàng.
## Sử dụng các truy vấn phụ trong mệnh đề FROM
### Câu hỏi
Doanh thu sản phẩm tại San Jose trong tháng Giêng 2004 so với doanh thu sản phẩm này hàng năm trong cùng thành phố trong cùng năm là như thế nào?
#### Ví dụ truy vấn
SELECT sales1.product, jan_04_sales, total_04_sales FROM (SELECT prod_name, SUM(dollars) FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND c.year = 2004 AND c.month = 'JAN' AND d.city LIKE 'San J%' GROUP BY a.prod_name) AS sales1(product, jan_04_sales) , (SELECT prod_name, SUM(dollars) AS total_04_sales FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND c.year = 2004 AND d.city LIKE 'San J%' GROUP BY a.prod_name) AS sales2(product, total_04_sales) WHERE sales1.product = sales2.product ORDER BY sales1.product;
### Kết quả
|PRODUCT||JAN_04_SALES||TOTAL_04_SALES|
|Aroma Roma||1653.00||21697.50|
|Aroma Sheffield Steel Teapot||120.00||1122.00|
|Aroma Sounds Cassette||58.50||866.00|
|Aroma baseball cap||7.95||2960.15|
|Aroma t-shirt||470.85||4470.50|
|Assam Gold Blend||652.00||11375.00|
|Assam Grade A||352.00||5429.00|
|Breakfast Blend||608.25||6394.75|
|Cafe Au Lait||1936.50||24050.50|
|Colombiano||2148.00||22528.50|
|Darjeeling Number 1||867.50||8590.00|
|Darjeeling Special||1355.00||17787.50|
|Demitasse Ms||2163.00||35523.50|
|Earl Grey||540.50||6608.50|
|English Breakfast||393.00||5365.50|
|Espresso Machine Italiano||899.55||4397.80|
|Expresso XO||2935.50||27362.00|
|French Press, 2-Cup||104.65||1196.00|
|French Press, 4-Cup||19.95||1109.20|
|Gold Tips||440.00||5381.50|
|Irish Breakfast||703.25||7455.50|
|...|
### Một giải pháp linh hoạt hơn: Các truy vấn phụ trong mệnh đề FROM
Một truy vấn phụ là biểu thức truy vấn bất kỳ trong dấu ngoặc xuất hiện
bên trong câu hỏi khác. Một truy vấn phụ đôi khi được gọi là một
*truy vấn bên trong*. Truy vấn bên trong hoạt động bên trong
*truy vấn phía ngoài*, hay như là *truy vấn con* của một
*truy vấn cha mẹ*.
#### Về truy vấn
Một giá trị thường được so sánh với một tổng của một tập hợp các giá
trị. Ví dụ truy vấn so sánh doanh thu sản phẩm ở San Jose trong
*tháng Giêng* 2004 với doanh thu ở San Jose *suốt* cả
năm 2004. Loại truy vấn này yêu cầu *các phép gộp hỗn hợp*; bởi
vậy, không thể viết loại truy vấn đó bằng các biểu thức CASE vì biểu
thức CASE phải hoạt động theo các giá trị bên trong một nhóm đơn hay
một phạm vi. Thay vào đó, các truy vấn phụ trong mệnh đề FROM được
dùng để thực hiện so sánh.
Chú ý quan trọng: Bất kỳ truy vấn nào mà có thể được biểu diễn
như một truy vấn phụ trong mệnh đề FROM cũng có thể được biểu
diễn như một truy vấn phụ trong danh sách chọn lựa, như sẽ cho
thấy ở phần sau trong hướng dẫn này.
#### Các lưu ý về cách dùng
Ví dụ truy vấn dựa vào tính linh hoạt của
*biểu thức truy vấn*
trong SQL tiêu chuẩn để kết nối các kết quả của hai truy vấn phụ. Để
biết thêm thông tin chi tiết về các biểu thức truy vấn, xem *. SQL Reference Guide*
Các bảng dẫn xuất từ kết quả đánh giá của các truy vấn phụ có thể được kết nối với các tham chiếu bảng khác. Với mục đích này, một truy vấn phụ trong mệnh đề FROM phải có một tên tương quan. Ví dụ, các truy vấn phụ trong ví dụ này được đánh giá thành các bảng sau đây:
sales1(product, jan_04_sales) sales2(product, total_04_sales)
Phép nối các bảng này (qua cột
**Product**) tạo ra một bảng phát
sinh không tên có ba cột, là nguồn của ba mục của danh sách chọn lựa
trong truy vấn chính:
product, jan_04_sales, total_04_sales
## Thực hiện các tính toán và các so sánh
### Câu hỏi
Doanh thu sản phẩm trong Tháng Giêng 2004 tại San Jose chiếm bao nhiêu phần trăm của doanh thu sản phẩm hàng năm trong cùng thành phố? Mười sản phẩm bán chạy nhất theo tỷ lệ phần trăm đó là gì?
#### Ví dụ truy vấn
SELECT sales1.product, jan_04_sales, total_04_sales, DEC((100.00 * jan_04_sales/total_04_sales),7,2) AS pct_of_04 FROM (SELECT a1.prod_name, SUM(dollars) FROM aroma.product a1, aroma.sales b1, aroma.period c1, aroma.store d1 WHERE a1.prodkey = b1.prodkey AND a1.classkey = b1.classkey AND c1.perkey = b1.perkey AND d1.storekey = b1.storekey AND c1.year = 2004 AND c1.month = 'JAN' AND d1.city LIKE 'San J%' GROUP BY a1.prod_name) AS sales1(product, jan_04_sales) , (SELECT a2.prod_name, SUM(dollars) FROM aroma.product a2, aroma.sales b2, aroma.period c2, aroma.store d2 WHERE a2.prodkey = b2.prodkey AND a2.classkey = b2.classkey AND c2.perkey = b2.perkey AND d2.storekey = b2.storekey AND c2.year = 2004 AND d2.city LIKE 'San J%' GROUP BY a2.prod_name) AS sales2(product, total_04_sales) WHERE sales1.product = sales2.product ORDER BY pct_of_04 DESC FETCH FIRST 10 ROWS ONLY;
### Kết quả
|PRODUCT||JAN_04_SALES||TOTAL_04_SALES||PCT_OF_04|
|Espresso Machine Italiano||899.55||4397.80||20.45|
|La Antigua||2643.25||22244.50||11.88|
|Expresso XO||2935.50||27362.00||10.72|
|Aroma Sheffield Steel Teapot||120.00||1122.00||10.69|
|Aroma t-shirt||470.85||4470.50||10.53|
|Lotta Latte||3195.00||31200.00||10.24|
|Darjeeling Number 1||867.50||8590.00||10.09|
|Colombiano||2148.00||22528.50||9.53|
|Breakfast Blend||608.25||6394.75||9.51|
|Irish Breakfast||703.25||7455.50||9.43|
### Các tính toán với các truy vấn phụ của mệnh đề FROM
Tập hợp kết quả của một truy vấn so sánh có thể được sử dụng như dữ
liệu nguồn cho các tính toán khác nhau. Ví dụ, một tổng doanh thu hàng
tháng của một sản phẩm có thể được biểu diễn như
*phần đóng góp*
trong doanh thu hàng năm với cách tính toán tỷ lệ phần trăm đơn
giản:
100.00 * monthly_sales / annual_sales
Các truy vấn phụ trong mệnh đề FROM có thể dùng để tính toán các tỷ lệ phần trăm hay phần đóng góp theo thị trường, theo sản phẩm và theo các khoảng thời gian.
#### Về truy vấn
Dựa vào ví dụ trước, truy vấn này tính toán các số doanh thu hàng tháng
cho từng sản phẩm ở San Jose như phần đóng góp hoặc tỷ lệ phần trăm
của doanh thu hàng năm của sản phẩm đó trong cùng thành phố. Tập hợp
kết quả có thể tạo ra một danh sách xếp hạng dựa vào quyết định
*sắp
xếp* của bạn.
Các con số trong cột
**Pct_of_04** không tổng cộng thành 100 vì các
con số này tương ứng với tỷ lệ phần trăm của một tháng trong một năm
cho doanh thu của mỗi sản phẩm riêng lẻ, không phải tỷ lệ phần trăm
của doanh thu hàng tháng trong toàn bộ doanh thu hàng năm.
Biểu đồ này cho thấy doanh thu trong tháng Giêng chiếm một vài phần trăm của doanh thu suốt cả năm. Ví dụ, các ấm chè được bán trong tháng Giêng chiếm10.69% của tổng doanh thu ấm chè năm.
## Sử dụng các truy vấn phụ trong danh sách SELECT
### Câu hỏi
Trong những ngày nào của tháng Mười Hai năm 2005 có các số doanh thu Lotta Latte tại công ty Roasting San Jose thấp hơn số doanh thu trung bình hàng ngày của cùng sản phẩm tại cùng cửa hàng trong tháng Mười Hai 2004? Hiển thị trung bình hằng ngày cho năm 2004 theo một cột riêng.
#### Ví dụ truy vấn
SELECT prod_name, store_name, date, dollars AS sales_05, (SELECT DEC(AVG(dollars),7,2) FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND year = 2004 AND month = 'DEC' AND store_name = 'San Jose Roasting Company' AND prod_name LIKE 'Lotta%') AS avg_04 FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND prod_name LIKE 'Lotta%' AND store_name = 'San Jose Roasting Company' AND year = 2005 AND month = 'DEC' AND dollars < (SELECT AVG(dollars) FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND year = 2004 AND month = 'DEC' AND store_name = 'San Jose Roasting Company' AND prod_name LIKE 'Lotta%');
### Kết quả
|PROD_NAME||STORE_NAME||DATE||SALES_05||AVG_04|
|Lotta Latte||San Jose Roasting Company||Dec 8, 2005||153.00||154.72|
|Lotta Latte||San Jose Roasting Company||Dec 27, 2005||144.50||154.72|
### So sánh bằng các truy vấn phụ của danh sách chọn lựa
Một truy vấn phụ có thể xuất hiện trong danh sách chọn lựa của một truy
vấn chính chỉ khi nó trả về một hàng hay không trả về hàng nào. Loại
truy vấn phụ này, gọi là
*truy vấn phụ vô hướng*, có ích cho các
so sánh kiểu bảng tính trong đó một loạt các giá trị được truy vấn
chính trả về so sánh với một giá trị do truy vấn phụ trả về.
#### Về truy vấn
Truy vấn phụ của ví dụ này trả về các số doanh thu Lotta Latte hằng
ngày tại công ty Roasting San Jose năm 2005 trong trường hợp số doanh
thu đó thấp hơn số doanh thu trung bình hàng ngày tại cùng cửa hàng
trong thời gian 2004. Cột
**Avg_04** có chứa chỉ một giá trị đơn
lặp lại là giá trị trung bình năm 2004; giá trị giống nhau này sẽ xuất
hiện trong cột đó bất kể số lượng các hàng trong tập hợp kết quả.
Cùng một truy vấn phụ giống như vậy xuất hiện hai lần trong truy vấn chính:
- Một lần như định nghĩa cột trong danh sách lựa chọn
- Một lần như một toán hạng của toán tử nhỏ hơn (<) trong một điều kiện của mệnh đề WHERE
Truy vấn này được xử lý theo thứ tự sau:
- Truy vấn phụ thứ hai, định nghĩa điều kiện tìm kiếm trong mệnh đề WHERE của truy vấn chính, được thực hiện.
- Giá trị dẫn xuất từ truy vấn phụ thứ hai được chèn vào vào trong mệnh đề WHERE của truy vấn chính.
- Truy vấn phụ của danh sách lựa chọn được thực hiện.
- Truy vấn chính được thực hiện.
#### Các lưu ý về cách dùng
Hàm vô hướng DEC được sử dụng trên cột
**Avg_04** của tập kết quả để
cắt bớt các số doanh thu trung bình:
DEC(AVG(dollars),7,2)
## Sử dụng các truy vấn phụ có tương quan
### Câu hỏi
Doanh thu của từng sản phẩm riêng lẻ ở San Jose trong tháng Giêng 2004 so với doanh thu hàng năm trong cùng thành phố trong cùng năm là bao nhiêu?
#### Ví dụ truy vấn
SELECT p1.prod_name, SUM(s1.dollars) AS jan_04_sales, (SELECT SUM(s2.dollars) FROM aroma.product p2, aroma.sales s2, aroma.period d2, aroma.store r2 WHERE p2.prodkey = s2.prodkey AND p2.classkey = s2.classkey AND d2.perkey = s2.perkey AND r2.storekey = s2.storekey AND p1.prod_name = p2.prod_name AND d1.year = d2.year AND r1.city = r2.city) AS total_04_sales FROM aroma.store r1, aroma.sales s1, aroma.product p1, aroma.period d1 WHERE p1.prodkey = s1.prodkey AND p1.classkey = s1.classkey AND d1.perkey = s1.perkey AND r1.storekey = s1.storekey AND year = 2004 AND month = 'JAN' AND city LIKE 'San J%' GROUP BY p1.prod_name, d1.year, r1.city ORDER BY p1.prod_name;
### Kết quả
|PROD_NAME||JAN_04_SALES||TOTAL_04_SALES|
|Aroma Roma||1653.00||21697.50|
|Aroma Sheffield Steel Teapot||120.00||1122.00|
|Aroma Sounds Cassette||58.50||866.00|
|Aroma baseball cap||7.95||2960.15|
|Aroma t-shirt||470.85||4470.50|
|Assam Gold Blend||652.00||11375.00|
|Assam Grade A||352.00||5429.00|
|Breakfast Blend||608.25||6394.75|
|Cafe Au Lait||1936.50||24050.50|
|Colombiano||2148.00||22528.50|
|Darjeeling Number 1||867.50||8590.00|
|Darjeeling Special||1355.00||17787.50|
|Demitasse Ms||2163.00||35523.50|
|Earl Grey||540.50||6608.50|
|English Breakfast||393.00||5365.50|
|Espresso Machine Italiano||899.55||4397.80|
|Expresso XO||2935.50||27362.00|
|French Press, 2-Cup||104.65||1196.00|
|French Press, 4-Cup||19.95||1109.20|
|Gold Tips||440.00||5381.50|
|Irish Breakfast||703.25||7455.50|
|La Antigua||2643.25||22244.50|
|Lotta Latte||3195.00||31200.00|
|NA Lite||1319.00||27457.00|
|...|
### Các truy vấn phụ có tương quan trong danh sách lựa chọn
Tuy các truy vấn phụ của danh sách lựa chọn phải trả về một giá trị đơn
hay không có giá trị nào, thì các truy vấn phụ đó vẫn có thể được thực
hiện
*nhiều hơn một lần* do tham khảo đến các kết quả được truy
vấn chính trả về. Theo cách này *các truy vấn phụ có tương quan*
như vậy trong danh sách lựa chọn có thể cho cùng một kết quả như các
truy vấn phụ trong mệnh đề FROM.
Một truy vấn phụ có tương quan có quan hệ chặt chẽ với truy vấn chính
thông qua tham khảo chéo tới các giá trị cụ thể trong các hàng được
truy vấn chính lấy ra. Ví dụ, một truy vấn phụ tương quan có thể tham
chiếu các giá trị trong cột
**Month** của truy vấn chính; bởi vậy,
truy vấn phụ trả về một giá trị mới mỗi khi giá trị của cột
**Month** thay đổi. Các tên tương quan của bảng được gán trong
mệnh đề FROM biểu diễn các tham khảo chéo này.
#### Về truy vấn
Ví dụ truy vấn đưa ra câu hỏi kinh doanh giống như truy vấn trước đó, nhưng lại đặt truy vấn phụ trong danh sách lựa chọn thay vì trong mệnh đề FROM. Truy vấn so sánh doanh thu của các sản phẩm ở San Jose trong tháng giêng 2004 với doanh thu hàng năm của các sản phẩm ở San Jose trong cùng năm.
Để làm cho truy vấn phụ có khả năng trả về một loạt các giá trị thay
cho một giá trị cố định ba
*tham khảo chéo* gắn truy vấn phụ với
truy vấn chính:
p1.prod_name = p2.prod_name d1.year = d2.year r1.city = r2.city
Các tên tương quan p2, d2, và r2, được định nghĩa trong mệnh đề FROM
của truy vấn phụ, loại bỏ tình trạng không rõ ràng. Mỗi điều kiện
tương quan tham chiếu một sản phẩm, năm và thành phố cụ thể trong hàng
hiện đang được câu hỏi chính xử lý. Các tham khảo chéo này đôi khi
được gọi là
*các tham khảo ngoài.*
#### Các lưu ý về cách dùng
Khi một hàm gộp xuất hiện trong danh sách lựa chọn của truy vấn chính,
cần phải có một mệnh đề GROUP BY. Các tên cột được tham chiếu trong
một điều kiện tương quan của một truy vấn phụ phải xuất hiện trong
mệnh đề GROUP BY của truy vấn chính; vì vậy, các cột sau đây phải được
liệt kê trong mệnh đề GROUP BY cũng như cột
**Prod_Name**:
d1.year, r1.city
## Sử dụng các tham khảo chéo
### Câu hỏi
Doanh thu hàng tháng của Lotta Latte ở San Jose trong ba tháng đầu tiên của 2005 và 2004 là bao nhiêu?
#### Ví dụ truy vấn
SELECT q.prod_name, e.month, SUM(dollars) AS sales_05, (SELECT SUM(dollars) FROM aroma.store t, aroma.sales s, aroma.product p, aroma.period d WHERE t.storekey = s.storekey AND p.classkey = s.classkey AND p.prodkey = s.prodkey AND d.perkey = s.perkey AND d.month = e.month AND d.year = e.year-1 AND p.prod_name = q.prod_name AND t.city = u.city) AS sales_04 FROM aroma.store u, aroma.product q, aroma.period e, aroma.sales l WHERE u.storekey = l.storekey AND q.classkey = l.classkey AND q.prodkey = l.prodkey AND e.perkey = l.perkey AND qtr = 'Q1_05' AND prod_name LIKE 'Lotta Latte%' AND city like 'San J%' GROUP BY q.prod_name, e.month, e.year, u.city;
### Kết quả
|PROD_NAME||MONTH||SALES_05||SALES_04|
|Lotta Latte||FEB||3213.50||4239.50|
|Lotta Latte||JAN||1611.00||3195.00|
|Lotta Latte||MAR||2510.50||2980.50|
### Các tham khảo chéo với các biểu thức
Các tham khảo chéo trong các truy vấn phụ không chỉ hạn chế tới các tên cột đầy đủ; chúng có thể cũng là các biểu thức. Ví dụ, các biểu thức sau đây là các tham khảo chéo hợp lệ:
period.year-1 (previous year) period.quarter-1 (previous quarter)
Loại tham khảo chéo tổng quát hóa này làm đơn giản hóa việc thiết kế các công cụ ứng dụng phía khách.
#### Về truy vấn
Truy vấn này trả về doanh thu Lotta Latte hàng tháng ở San Jose trong ba tháng đầu tiên của cả năm 2005 lẫn 2004. Giải pháp tương quan là kết quả mong đợi có chứa dữ liệu cùng các tháng nhưng khác năm.
Mệnh đề FROM của truy vấn chính gán các tên tương quan cho tất cả các bảng có liên kết với nhau:
FROM aroma.store u, aroma.product q, aroma.period e, aroma.sales l
Truy vấn phụ sau đó gắn việc thực hiện của nó với việc thực hiện truy vấn chính dựa vào các điều kiện sau trong mệnh đề WHERE:
d.month = e.month d.year = e.year-1 p.prod_name = q.prod_name t.city = u.city
Do truy vấn chính lấy ra các hàng nên các giá trị của mỗi cột trong
truy vấn cha mẹ có thể thay đổi, và các điều kiện tương quan truyền sự
thay đổi này tới truy vấn phụ. Mối tham khảo chéo tới năm trước có
dạng
*year-1* làm tổng quát hóa truy vấn phụ bằng cách loại bỏ
một giá trị không đổi (2004).
Muốn thay đổi truy vấn để báo cáo theo các thời hạn năm khác, chỉ cần thay đổi ràng buộc về năm trong truy vấn chính.
#### Các lưu ý về cách dùng
Mỗi khi có thể, hãy tổng quát hóa các truy vấn phụ có tương quan và giảm thiểu sự tương tác của người sử dụng bằng cách dùng các tham khảo chéo dạng biểu thức.
## Tính toán các tỷ lệ phần trăm của quý và năm
### Câu hỏi
Các tổng số doanh thu hàng tháng trong quý đầu tiên của năm 2004 của các sản phẩm đã bán theo các túi một bảng ở San Jose là bao nhiêu? Tỷ lệ phần trăm của doanh thu mỗi tháng so với cả quý và so với cả năm là bao nhiêu?
#### Ví dụ truy vấn
SELECT pj.prod_name, dj.month, SUM(dollars) AS mon_sales_04, DEC(100 * DEC(SUM(dollars))/ (SELECT SUM(si.dollars) FROM aroma.store ri, aroma.sales si, aroma.product pi, aroma.period di WHERE si.storekey = ri.storekey AND si.classkey = pi.classkey AND si.prodkey = pi.prodkey AND si.perkey = di.perkey AND di.qtr = dj.qtr AND di.year = dj.year AND pi.prod_name = pj.prod_name AND pi.pkg_type = pj.pkg_type AND ri.city = rj.city), 7, 2) AS pct_qtr1, DEC(100 * DEC(SUM(dollars))/ (SELECT SUM(si.dollars) FROM aroma.store ri, aroma.sales si, aroma.product pi, aroma.period di WHERE si.storekey = ri.storekey AND si.classkey = pi.classkey AND si.prodkey = pi.prodkey AND si.perkey = di.perkey AND di.year = dj.year AND pi.prod_name = pj.prod_name AND pi.pkg_type = pj.pkg_type AND ri.city = rj.city), 7, 2) AS pct_yr FROM aroma.store rj, aroma.sales sj, aroma.product pj, aroma.period dj WHERE sj.storekey = rj.storekey AND sj.classkey = pj.classkey AND sj.prodkey = pj.prodkey AND sj.perkey = dj.perkey AND rj.city = 'San Jose' AND dj.year = 2004 AND dj.qtr = 'Q1_04' AND pkg_type = 'One-pound bag' GROUP BY pj.prod_name, dj.month, dj.qtr, dj.year, pj.pkg_type, rj.city ORDER BY pj.prod_name, pct_qtr1 desc;
### Kết quả
|PROD_NAME||MONTH||MON_SALES_04||PCT_QTR1||PCT_YR|
|Aroma Roma||FEB||688.75||39.87||8.72|
|Aroma Roma||JAN||594.50||34.42||7.53|
|Aroma Roma||MAR||442.25||25.61||5.60|
|Cafe Au Lait||MAR||742.00||40.61||10.27|
|Cafe Au Lait||JAN||600.50||32.84||8.31|
|Cafe Au Lait||FEB||484.50||26.49||6.70|
|...|
### Tính toán với các truy vấn phụ của danh sách lựa chọn
Các tỷ lệ phần trăm hàng tháng so với cả quý, cả năm hay các kỳ hạn khác có thể được tính toán với một truy vấn phụ trong danh sách lựa chọn. Truy vấn chính lấy ra các số doanh thu hàng tháng và hai truy vấn phụ lấy ra các con số doanh thu hàng quý và hàng năm. Các tỷ lệ phần trăm hàng tháng chỉ cần các tính toán đơn giản: các tỷ số của doanh thu hàng tháng so với quý và doanh thu hàng tháng so với năm.
#### Về truy vấn
Ví dụ truy vấn này tính toán các tỷ lệ phần trăm doanh thu hàng tháng so với quý và doanh thu hàng tháng so với năm cho các sản phẩm cà phê đã chọn được bán ở San Jose trong quý 1 năm 2004. Sau khi tính toán các tỷ lệ phần trăm, truy vấn này sắp xếp bảng kết quả theo sản phẩm và tỷ lệ phần trăm hàng quý theo thứ tự giảm dần.
## Sử dụng các truy vấn phụ trong mệnh đề WHERE
### Câu hỏi
Trong những ngày nào trong tháng Sáu năm 2005 các số doanh thu Lotta Latte tại các cửa hàng ở hạt Chicago thấp hơn số doanh thu trung bình hàng ngày của cùng sản phẩm trong hạt này trong tháng Sáu 2004?
#### Ví dụ truy vấn
SELECT prod_name, district, date, dollars AS sales_05 FROM aroma.market a, aroma.store b, aroma.sales c, aroma.product d, aroma.period e WHERE a.mktkey = b.mktkey AND b.storekey = c.storekey AND d.classkey = c.classkey AND d.prodkey = c.prodkey AND e.perkey = c.perkey AND prod_name like 'Lotta%' AND district like 'Chic%' AND year = 2005 AND month = 'JUN' AND dollars < (SELECT AVG(dollars) FROM aroma.market a, aroma.store b, aroma.sales c, aroma.product d, aroma.period e WHERE a.mktkey = b.mktkey AND b.storekey = c.storekey AND d.classkey = c.classkey AND d.prodkey = c.prodkey AND e.perkey = c.perkey AND prod_name like 'Lotta%' AND district like 'Chic%' AND year = 2004 AND month = 'JUN') ORDER BY date;
### Kết quả
|PROD_NAME||DISTRICT||DATE||SALES_05|
|Lotta Latte||Chicago||Jun 7, 2005||76.50|
|Lotta Latte||Chicago||Jun 10, 2005||59.50|
|Lotta Latte||Chicago||Jun 16, 2005||42.50|
|Lotta Latte||Chicago||Jun 17, 2005||76.50|
|Lotta Latte||Chicago||Jun 29, 2005||110.50|
#### Về truy vấn
Truy vấn này trả về các số doanh thu Lotta Latte tại các cửa hàng ở hạt Chicago trong năm 2005 cho những ngày có doanh thu thấp hơn số doanh thu trung bình hàng ngày của Lotta Latte trong cùng thành phố trong năm 2004.
Truy vấn phụ trong ví dụ này là vô hướng – nó tạo ra một giá trị. Sau khi truy vấn phụ đã tính toán số đôla trung bình cho mỗi ngày ở Chicago trong năm 2004, giá trị trung bình này được sử dụng như một ràng buộc trên tất cả các hàng được truy vấn chính trả về. Chỉ các số nào trong năm 2005 thấp hơn so với trung bình năm 2004 mới được hiển thị trong tập kết quả; số trung bình tự nó không thể được hiển thị trừ khi truy vấn phụ được di chuyển vào trong danh sách lựa chọn hay mệnh đề FROM.
#### Các lưu ý về cách dùng
Thứ tự lôgíc của việc xử lý truy vấn bắt buộc rằng những ràng buộc của mệnh đề WHERE được máy chủ áp dụng ngay lập tức sau khi các bảng trong mệnh đề FROM đã được nối và trước bất kỳ sự tính toán nào với các hàm tập hợp như AVG và SUM, vân vân. Vì thế, bạn không thể sử dụng một trong số các hàm đó trong một điều kiện tìm kiếm đơn giản trong mệnh đề WHERE.
## Sử dụng các thuộc tính so sánh
### Câu hỏi
Sản phẩm nào đã ghi nhận có tổng doanh thu hàng ngày cao nhất ở Hartford, Connecticut, trong tháng Giêng 2006?
#### Ví dụ truy vấn
SELECT prod_name, date, dollars FROM aroma.store a, aroma.sales b, aroma.product c, aroma.period d WHERE a.storekey = b.storekey AND c.prodkey = b.prodkey AND c.classkey = b.classkey AND d.perkey = b.perkey AND year = 2006 AND city = 'Hartford' AND month = 'JAN' AND dollars >= ALL (SELECT dollars FROM aroma.product a, aroma.sales b, aroma.period c, aroma.store d WHERE a.prodkey = b.prodkey AND a.classkey = b.classkey AND c.perkey = b.perkey AND d.storekey = b.storekey AND year = 2006 AND city = 'Hartford' AND month = 'JAN');
### Kết quả
|PROD_NAME||DATE||DOLLARS|
|NA Lite||2006-01-23||414.00|
#### Về truy vấn
Ví dụ truy vấn trả về tên sản phẩm được ghi nhận có tổng doanh thu hàng ngày cao nhất tại Hartford, Connecticut, trong tháng Giêng 2006 và ngày tháng cụ thể khi tổng số đó được ghi nhận. Truy vấn có thể được viết lại để trả về tổng số thấp nhất khi thay toán tử lớn hoặc bằng (>=) bằng toán tử nhỏ hơn hoặc bằng (<=).
### Thuộc tính ANY/SOME
Bạn cũng có thể đánh giá từng kết quả trả về trong lệnh chọn lựa so với một hoặc nhiều giá trị được một truy vấn phụ lấy ra. Nếu có bất kỳ đánh giá nào là đúng, tập kết quả sẽ được trả về. Các từ khóa ANY và SOME có ý nghĩa giống nhau trong kiểu truy vấn này.
### Câu hỏi
Liệt kê các tên của tất cả các cửa hàng nằm trong các thành phố có đặt trụ sở chính.
### Truy vấn mẫu (ANY hay SOME)
SELECT store_name FROM aroma.store WHERE city = ANY (SELECT hq_city FROM aroma.market) ORDER BY state, city, store_name;
### Kết quả
|STORE_NAME|
|Java Judy's|
|Beaches Brew|
|Instant Coffee|
|...|
|East Coast Roast|
|Texas Teahouse|
|Coffee Brewers|
#### Các lưu ý về cách dùng
Trước tiên hệ thống thực hiện lệnh SELECT bên trong và lưu trữ danh sách của các giá trị HQ_CITY trong một bảng tạm thời. Sau đó nó đánh giá mỗi hàng từ danh sách SELECT bên ngoài đối với bảng này. Nếu giá trị CITY bằng với một hoặc nhiều hàng của kết quả truy vấn bên trong, nó được trả về trong tập kết quả.
### Các thuộc tính so sánh trong các truy vấn phụ
Các thuộc tính ALL, ANY, SOME, và EXISTS rất có ích để biểu diễn các điều kiện trên các nhóm các giá trị được một truy vấn phụ lấy ra. Một thuộc tính so sánh tuyên bố một quan hệ lôgíc giữa hai giá trị: đối với một hàng đã cho, kết quả so sánh là đúng, sai hay không biết. (Các thuộc tính ANY và SOME là đồng nghĩa.)
|THUỘC TÍNH||ĐÁNH GIÁ ĐÚNG KHI||KHI KHÔNG CÓ GIÁ TRỊ NÀO ĐƯỢC TRẢ VỀ|
|ALL||Kết quả so sánh là đúng cho tất cả các giá trị được truy vấn phụ trả về.||Đánh giá là đúng.|
|ANY, SOME||Kết quả so sánh là đúng cho ít nhất một trong số các giá trị được truy vấn phụ gửi về.||Đánh giá là sai.|
|EXISTS||Truy vấn phụ tạo ra ít nhất một hàng.||Đánh giá là sai.|
Để biết thêm chi tiết về các thuộc tính này, xem
*. SQL Reference Guide*
## Tóm tắt
Hướng dẫn này mô tả cách viết các truy vấn để so sánh dữ liệu và hiển thị các kết quả theo một định dạng dễ đọc. Nhiều cách tiếp cận khác nhau được minh họa:
- Các biểu thức CASE
- Các truy vấn phụ của mệnh đề FROM
- Các truy vấn phụ của danh sách lựa chọn, bao gồm các truy vấn phụ có tương quan
- Các truy vấn phụ của mệnh đề WHERE
### Các truy vấn so sánh
Hướng dẫn này kết thúc bằng việc giới thiệu về các thuộc tính so sánh ALL, ANY, SOME, và EXISTS có thể được sử dụng thay cho các phép so sánh toán học như là các điều kiện trên kết quả truy vấn phụ.
Một số ví dụ phức tạp hơn đã cho thấy cách bao gồm các tính toán vào trong các truy vấn so sánh, như các tỷ lệ phần trăm để biểu diễn phần đóng góp của quý hay phần đóng góp của năm.
Chú ý quan trọng: Nói chung, việc thực hiện truy vấn nhanh
chóng hơn khi các truy vấn so sánh sử dụng các biểu thức CASE
hơn là các truy vấn phụ. Tuy nhiên, nếu các truy vấn phụ là
cần thiết, phương pháp được ưa thích là sử dụng mệnh đề FROM
hơn là danh sách lựa chọn. Vì mỗi cơ sở dữ liệu và mỗi truy
vấn là khác nhau, bạn nên thử nhiều phương pháp khác nhau trên
cơ sở dữ liệu đang dùng.
## Tải về
|Mô tả||Tên||Kích thước|
|Cơ sở dữ liệu Aroma|
## Tài nguyên
### Học tập
- Xem "
[Phụ lục A](http://www.ibm.com/developerworks/vn/edu/dm0607cao/index.html)" của loạt bài này (developerWorks, 08. 2006).
- Đọc "
[Hướng dẫn đánh giá XML DB2](http://www.ibm.com/developerworks/edu/dm-dw-dm-0606leung-i.html?S_TACT=105AGY75)" (developerWorks, 06.2006), Tài liệu hướng dẫn từng bước giới thiệu cho người đọc về máy chủ dữ liệu Viper DB2 trên nền Windows, sử dụng khả năng lưu trữ và tìm kiếm XML (SQL/XML, XQuery) sẵn có để hỗ trợ các ứng dụng thế hệ kế tiếp.
- Xem bài này và bài "
[Hứng khởi bắt đầu nhanh với DB2 Viper](http://www.ibm.com/developerworks/db2/library/techarticle/dm-0603saracco/?S_TACT=105AGY75)" (developerWorks, 03.2006).
- Tìm hiểu cách làm thế nào để "
[Truy vấn dữ liệu XML trong DB2 với XQuery](http://www.ibm.com/developerworks/db2/library/techarticle/dm-0604saracco/?S_TACT=105AGY75)" (developerWorks, 04.2006).
- Tìm hiểu cách làm thế nào để "
[Truy vấn dữ liệu XML trong DB2 với SQL](http://www.ibm.com/developerworks/db2/library/techarticle/dm-0603saracco2/?S_TACT=105AGY75)" (developerWorks, 03.2006).
- Đọc
[Đọc Tập san các hệ thống của IBM](http://www.research.ibm.com/journal/sj45-2.html)và kỷ niệm 10 năm của XML.
- Xem
[Tài liệu Tham khảo SQL, tập 1](ftp://ftp.software.ibm.com/ps/products/db2/info/vr82/pdf/en_US/db2s1e81.pdf)để xem các thông tin bổ sung.
- Xem
[Tài liệu Tham khảo SQL, tập 2](ftp://ftp.software.ibm.com/ps/products/db2/info/vr82/pdf/en_US/db2s2e81.pdf)để xem các thông tin bổ sung.
- Xem
[Trung tâm thông tin DB2](http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp)để khắc phục sự cố.
- Xem
[Không gian hỗ trợ kỹ thuật XML DB2](http://www.ibm.com/developerworks/wikis/display/db2xml/Home?S_TACT=105AGY75)để nhận được các liên kết tới hơn 25 bài báo về các khả năng của XML DB2.
### Lấy sản phẩm và công nghệ
- Hiện nay bạn có
thể sử dụng DB2 miễn phí. Tải xuống
[DB2 Express-C](http://www.ibm.com/developerworks/downloads/im/udbexp/index.html?S_TACT=105AGY75), một phiên bản DB2 Express miễn phí dành cho cộng đồng nhưng vẫn có đủ các đặc tính dữ liệu cốt lõi giống như phiên bản DB2 Express và cung cấp một cơ sở vững chắc để xây dựng và triển khai các ứng dụng.
### Thảo luận
## Bình luận
[Vùng dữ liệu trên developerWorks](http://www.ibm.com/developerworks/vn/views/data/libraryview.jsp)
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
[Vùng mã nguồn mở trên developerWorks](http://www.ibm.com/developerworks/vn/views/opensource/libraryview.jsp)
Xem các bài viết về HTML, CSS, JavaScript,...
[Điện toán đám mây](http://www.ibm.com/developerworks/vn/views/cloud/libraryview.jsp)
Tìm hiểu về điện toán đám mây

Content-Language: en-US


text:
In PP mực dầu chất lượng cao giá rẻ thích hợp khi bạn cần quảng cáo trên kệ X, banner cuốn (rollup banner, standy, standee, banner stand, backdrop,…), dán formex tại các hội chợ triển lãm, cờ treo, cờ phướn,…Ấn tượng của buổi ra mắt sản phẩm, buổi ca nhạc, showroom trưng bày,…sẽ được khắc sâu hơn trong lòng người xem bởi một phầm những khung hình đẹp bạn trưng bày.
In PP Giá rẻ chỉ 40k/m2, In nhanh giao hàng tận nơi tại TPHCM, Dịch vụ in PP tại BCV : in pp trong nhà, in pp ngoài trời, in pp keo, pp không keo, cán màng bóng, màng mờ miễn phí.
In PP Giá rẻ IN NHANH giao hàng tận nơi tại TPHCM
PP là tên một loại chất liệu trong ngành in ấn kỹ thuật số. Mặt sau PP có keo hoặc không keo, PP sau khi in được phủ lên một lớp màng bóng hoặc mờ để bảo vệ.
PP được ứng dụng để in Poster quảng cáo, tranh ảnh trong nhà (dán, đóng khung, treo trên standee hoặc treo như lịch bloc...) hoặc có thể dán lên mica để làm hộp đèn. PP được sử dụng trong nhà (mực nước) hoặc ngoài trời (mực dầu).
In PP giá rẻ không đồng nghĩa với chất lượng In PP mực dầu thấp đi mà ngược lại chúng tôi luôn đề cao chất lượng in, với tiêu chí: làm hài lòng khách hàng tối đa khi họ đã đặt niềm tin vào sản phẩm in ấn của mình.
Bạn có nhu cầu in poster, in banner quảng cáo, in hình tạo khung ảnh,…chúng tôi sẵn sàng cung cấp tới bạn dịch vụ In PP mực dầu đẹp giá rẻ và nếu bạn đang cần lấy liền, chúng tôi cũng sẽ giúp bạn.
In PP bồi Fomex được khách hàng sử dụng rất nhiều trong việc quảng cáo, In PP bồi Fomex xong được bế thành hình sản phẩm để làm nổi bật sản phẩm hơn và tạo nên sự mới mẽ cho sản phẩm, khách hàng sẽ dễ nhớ sản phẩm của bạn hơn. Sản phẩm In PP bồi Fomex có thể dùng làm standee, poster quảng cáo, hình người, hình sản phẩm...
Giấy ảnh là gì?
Giấy ảnh là một loại giấy trong ngành in ấn kỹ thuật số. Mặt sau giấy ảnh không có keo và thường có chữ mờ. Giấy ảnh cũng được phủ lên một lớp màng bóng hoặc mờ để bảo vệ sau khi in.
Giấy ảnh thường dùng để in tranh ảnh trang trí trong nhà, đặc biệt làm lịch treo tường bằng cách đóng khung hoặc đóng nẹp trên dưới.
Backlit film là gì?
Backlit film là một trong những chất liệu cao cấp nhất trong ngành in kỹ thuật số. Backlit film in ở mặt sau nhưng xem ở mặt trước, tính xuyên sáng tốt hơn pp do đó làm nổi bật rực rỡ hình ảnh in ấn.
Backlit film sử dụng nhiều nhất trong các hộp đèn, poster, banner quảng cáo cao cấp. Chúng ta có thể bắt gặp ứng dụng của backlit film tại các nơi như thang máy, siêu thị, shop mỹ phẩm, nhà hàng, khách sạn...
Dịch vụ in pp giá rẻ tại BCV sẽ làm hài lòng quý khách.
LIÊN HỆ NGAY ĐỂ ĐƯỢC TƯ VẤN MIỄN PHÍ
- Công ty TNHH In Bước Chân Việt
- Địa chỉ: 162L/24 Trường Chinh, P.12, Q.Tân Bình, TP.HCM
- Hotline: 08 6683 6359 – 0939 514 770

markdown:
**In PP-In PP Mực Dầu-In PP Mực nước-Xưởng In PP Giá Rẻ** **mực dầu chất lượng cao giá rẻ thích hợp khi bạn cần quảng cáo trên kệ X, banner cuốn (rollup banner, standy, standee, banner stand, backdrop,…), dán formex tại các hội chợ triển lãm, cờ treo, cờ phướn,…Ấn tượng của buổi ra mắt sản phẩm, buổi ca nhạc, showroom trưng bày,…sẽ được khắc sâu hơn trong lòng người xem bởi một phầm những khung hình đẹp bạn trưng bày.** [In PP](http://www.inhiflex.info/2015/01/in-pp-gia-re-in-nhanh-giao-hang-tan-noi-tphcm.html)
In PP Giá rẻ chỉ 40k/m2, In nhanh giao hàng tận nơi tại TPHCM, Dịch vụ in PP tại BCV : in pp trong nhà, in pp ngoài trời, in pp keo, pp không keo, cán màng bóng, màng mờ miễn phí.
In PP Giá rẻ IN NHANH giao hàng tận nơi tại TPHCM
**In PP là gì?**
PP là tên một loại chất liệu trong ngành in ấn kỹ thuật số. Mặt sau PP có keo hoặc không keo, PP sau khi in được phủ lên một lớp màng bóng hoặc mờ để bảo vệ.
PP được ứng dụng để in Poster quảng cáo, tranh ảnh trong nhà (dán, đóng khung, treo trên standee hoặc treo như lịch bloc...) hoặc có thể dán lên mica để làm hộp đèn. PP được sử dụng trong nhà (mực nước) hoặc ngoài trời (mực dầu).
In PP giá rẻ không đồng nghĩa với chất lượng In PP mực dầu thấp đi mà ngược lại chúng tôi luôn đề cao chất lượng in, với tiêu chí: làm hài lòng khách hàng tối đa khi họ đã đặt niềm tin vào sản phẩm in ấn của mình.
Bạn có nhu cầu in poster, in banner quảng cáo, in hình tạo khung ảnh,…chúng tôi sẵn sàng cung cấp tới bạn dịch vụ In PP mực dầu đẹp giá rẻ và nếu bạn đang cần lấy liền, chúng tôi cũng sẽ giúp bạn.
**In PP bồi Fomex**được khách hàng sử dụng rất nhiều trong việc quảng cáo, In PP bồi Fomex xong được bế thành hình sản phẩm để làm nổi bật sản phẩm hơn và tạo nên sự mới mẽ cho sản phẩm, khách hàng sẽ dễ nhớ sản phẩm của bạn hơn. Sản phẩm In PP bồi Fomex có thể dùng làm standee, poster quảng cáo, hình người, hình sản phẩm... **Giấy ảnh là gì?**
Giấy ảnh là một loại giấy trong ngành in ấn kỹ thuật số. Mặt sau giấy ảnh không có keo và thường có chữ mờ. Giấy ảnh cũng được phủ lên một lớp màng bóng hoặc mờ để bảo vệ sau khi in.
Giấy ảnh thường dùng để in tranh ảnh trang trí trong nhà, đặc biệt làm lịch treo tường bằng cách đóng khung hoặc đóng nẹp trên dưới.
**Backlit film là gì?**
Backlit film là một trong những chất liệu cao cấp nhất trong ngành in kỹ thuật số. Backlit film in ở mặt sau nhưng xem ở mặt trước, tính xuyên sáng tốt hơn pp do đó làm nổi bật rực rỡ hình ảnh in ấn.
Backlit film sử dụng nhiều nhất trong các hộp đèn, poster, banner quảng cáo cao cấp. Chúng ta có thể bắt gặp ứng dụng của backlit film tại các nơi như thang máy, siêu thị, shop mỹ phẩm, nhà hàng, khách sạn...
Dịch vụ in pp giá rẻ tại BCV sẽ làm hài lòng quý khách.
LIÊN HỆ NGAY ĐỂ ĐƯỢC TƯ VẤN MIỄN PHÍ
- Công ty TNHH In Bước Chân Việt
- Địa chỉ: 162L/24 Trường Chinh, P.12, Q.Tân Bình, TP.HCM
- Hotline: 08 6683 6359 – 0939 514 770

WARC-Type: response

Content-Type: application/http; msgtype=response

X-XSS-Protection: 1; mode=block

Server: GSE

Cache-Control: private, max-age=0

X-Content-Type-Options: nosniff

Content-Type: text/html; charset=UTF-8


text:
nhasachtritue.com
Sách bán chạy trong tháng
Sách thiếu nhi
Search
Tên sách
Tên sách
Mã sách
Tác giả
Nhà xuất bản
Xin chào.
Khách
Đăng nhập
Giỏ hàng
0
Thông tin
Khuyến Mãi
Trang chủ
Sách mới
Best sellers
Sách báo chí giới thiệu
Sách giáo dục
Tin sách
Diễn đàn
Công ty CP Sách và TBGD Trí Tuệ hoạt động theo Hệ thống Tiêu Chuẩn Chất Lượng ISO 9001-2008.
----------------------------------------
Hệ thống các nhà sách Trí Tuệ trên địa bàn Hà nội
Trụ sở 1: 187 Giảng Võ - Đống Đa
Tel: 04.3851.5567 Fax: 04.3514.3483
Trụ sở 2: 27 Trần Xuân Soạn - Hai Bà Trưng
Tel: 04.8582.8922 Fax: 04.38212.940
Trụ sở 3: 76 Ngọc Lâm - Quận Long Biên
Tel: 04.3873.7097 Fax: 04.3873.7086
Trụ sở 4: Nhà sách Trí Tuệ Hồ Tùng Mậu, Đại học Thương Mại
Tel: 04.3795.9085 Fax: 04.3795.9083
Trụ sở 5: Royal City, 72A Nguyễn Trãi, Thanh Xuân
Tel/Fax: 04.6262 0929
© Copyright by NhaSachTriTue.com 2013 Alright Reserved
Mọi thông tin góp ý vui lòng liên hệ theo Email : support@nhasachtritue.com

Connection: close

Cache-Control: private

Content-Type: text/html; charset=utf-8


text:
Một số người “sốt ruột” đã gọi điện trực tiếp đến đại diện cửa hàng bán lẻ trực tuyến Apple, nhưng họ chỉ nhận được câu trả lời là cửa hàng vẫn đang trong trạng thái cập nhật, và tất cả yêu cầu đặt hàng đều phải thực hiện qua cửa hàng trực tuyến.
Nhiều người không thể chờ đợi nữa đã gọi đến số điện thoại miễn phí của Apple với mong muốn sớm được đặt hàng, nhưng họ đã nhận câu trả lời từ hệ thống trả lời tự động “vì lượng khách hàng gọi đến rất đông nên chúng tôi không thể trả lời quý khách, mong quý khách thông cảm”.
Tim Cook, Giám đốc điều hành Apple, cho biết các cửa hàng bán lẻ của hãng sẽ bắt đầu bán iPad mới vào ngày 16/3/2012, những đơn hàng đặt trực tuyến đầu tiên có thể sẽ được giao hàng trước ngày này.
Giá iPad mới sẽ có mức giá tương đương iPad 2: bản Wi-Fi 16GB giá 499 đô la Mỹ (~ 10,5 triệu đồng), bản 3G/LTE 16GB có giá 629 đô la Mỹ (~ 13,2 triệu đồng).
Sau vài giờ cố truy cập trang cửa hàng trực tuyến Apple, nhiều người đã có thể đặt hàng nhưng chỉ với số lượng giới hạn 2 cái/khách hàng, thời gian giao hàng dự kiến là 16/3/2012.


text:
Mạng thông tin Asean+3 sẽ hình thành theo sự nhất trí tại cuộc họp của Ủy Ban Điều Phối Đầu Tư ASEAN vừa được tổ chức tại Bruney. Các ngân hàng thương mại trong nước cam kết bảo đảm an toàn với các chủ thẻ tín dụng Master Card và Visa Card trước việc thông tin tài khoản của 40 triệu chủ thẻ bị lộ qua hệ thống giao dịch của một công ty tại Mỹ.
Sẽ có mạng thông tin ASEAN + 3
Các nước thành viên Hiệp Hội Các Quốc Gia Đông Nam Á (ASEAN) và 3 nước đối tác là Trung Quốc, Nhật Bản và Hàn Quốc đã đi tới một thoả thuận nhằm xây dựng mạng thông tin chung về đầu tư. Đây là kết luận được đưa ra tại cuộc họp Uỷ Ban Điều Phối Đầu Tư ASEAN lần thứ 27 vừa họp tại Brunei vào giữa tháng 6/2005. Mạng thông tin đầu tư Đông Á sẽ bao gồm các thông tin về chính sách, luật pháp chung, chính sách về đầu tư và các ưu đãi, chính sách thuế, danh sách gọi vốn đầu tư, cơ sở dữ liệu về công nghệ phụ trợ của các nước ASEAN + 3. (Đầu Tư 24/6/2005)
Ngân Hàng Nhà Nước (NHNN) vừa trình Chính Phủ dự thảo nghị định về thanh toán không dùng tiền mặt. Theo đó, các cá nhân, tổ chức khi chi tiêu trong đơn vị chỉ được chi bằng tiền mặt mức dưới 5 triệu đồng. Trường hợp chi cho cá nhân không có tài khoản thì mức chi bằng tiền mặt chỉ được dưới 10 triệu đồng.
Ngoài ra, NHNN cũng xây dựng đề cương đề án Phát triển hệ thống lưu thông séc/hối phiếu và hệ thống thanh toán thay thế thanh toán bằng tiền mặt, qua đó thúc đẩy thanh toán không dùng tiền mặt. Theo NHNN, việc mở rộng thanh toán bằng sec/hối phiếu là nhằm tạo chuyển biến mới trong công tác thu hút vốn đầu tư trực tiếp nước ngoài. (Tuổi Trẻ 24/6/2005)
Ngày 23/6/2005, Ngân Hàng Ngoại Thương Việt Nam (VCB) đã ra thông báo về việc các chủ thẻ Visa và Master bị lộ thông tin tài khoản. Bà Nguyễn Tú Anh, giám đốc Trung Tâm Thẻ của VCB cho biết, có khoảng 30 khách hàng tại VCB đã từng sử dụng thẻ Visa hoặc Master giao dịch qua hệ thống của công ty CardSystems Solutions (Mỹ) bị lộ thông tin. Tuy nhiên, VCB đã cho phong toả tất cả các tài khoản này và thông báo để các chủ thẻ đến đổi thẻ. Theo VCB, trong khoảng 40 triệu thẻ bị lộ thông tin qua CardSystems Solutions, có khoảng 13,9 triệu thẻ MasterCard và 22 triệu thẻ Visa. Tuy nhiên, chỉ có hơn 100 thẻ của Visa được phát hành tại các ngân hàng Việt Nam.
Ông Nguyễn Quốc Kỳ, phó tổng giám đốc Ngân Hàng TMCP Á Châu (ACB) cho biết, có khoảng 20 khách hàng của ACB cũng bị lộ thông tin tài khoản. Tuy nhiên, ACB đã khoá tài khoản để họ có thể đến đổi thẻ mới và chưa tài khoản nào bị mất tiền. Nguồn tin từ Ngân Hàng TMCP Xuất Nhập Khẩu Việt Nam (Eximbank) cho biết, ngân hàng này cũng đã khoá tài khoản của 20 khách hàng và mời họ đến đổi thẻ. (Thanh Niên 24/6/2005)
Một đoàn gồm 6 DN viễn thông hàng đầu của Israel sẽ đến thăm Việt Nam trong 2 ngày 27 và 28/6/2005. Đoàn sẽ có cuộc gặp gỡ với Bộ BCVT và các DN viễn thông gồm VNPT, Hanoi Telecom, VP Telecom cùng các nhà cung cấp dịch vụ viễn thông và tích hợp hệ thống. Thiết bị và các giải pháp viễn thông của Israel đã được biết đến tại thị trường Việt Nam với những sản phẩm đáng tin cậy, hiện đại, có tính cạnh tranh và khả năng tương thích cao. Sự tăng trưởng vượt bậc của thị trường viễn thông Việt Nam đã trở thành điểm đến hấp dẫn đối với các công ty viễn thông Israel. (Lao Động 24/6/2005)
Ngay sau lễ ký kết lá thư gửi 12.000 DN trong nước về tôn trọng bản quyền PM, ông Trần Chiến Thắng, thứ trưởng Bộ Văn Hoá Thông Tin đã giải thích về mục đích, ý nghĩa lá thư này.
Theo ông, việc tôn trọng sự sáng tạo của người khác trước tiên xuất phát từ quyền lợi của chính mình, quyền lợi của các DN và người tiêu dùng Việt Nam. Nếu cứ để tình trạng vi phạm quyền sở hữu trí tuệ tràn lan như hiện nay là chính chúng ta đã hại chúng ta. Theo ông, việc thực thi quyền sở hữu trí tuệ, quyền tác giả là một quá trình lâu dài và cần bắt đầu từ một lời kêu gọi, vận động để mọi người cùng quan tâm, thay đổi nhận thức. Lá thư này được gửi đến tận địa chỉ của các DN cũng là một lời nhắc nhở rằng “hoạt động của các anh, cơ quan quản lý có biết, các anh nên tôn trọng luật lệ.” Để bảo vệ quyền sở hữu trí tuệ, cơ quan quản lý có thể đưa ra các chế tài nghiêm khắc, đơn vị nào vi phạm sẽ bị phạt nặng tới mức sập tiệm nhưng trước mắt là chưa làm như thế. Bởi vậy mới có cuộc tuyên truyền, vận động trong các DN về vấn đề này.
Ông cũng cho biết, các quy định của pháp luật trong vấn đề này hiện chưa đồng bộ. Sắp tới, điều này sẽ được khắc phục trong dự án Luật Sở hữu Trí tuệ. Cái khó hiện nay trong việc bảo vệ quyền sở hữu trí tuệ có phần do người bị vi phạm không quyết liệt bảo vệ quyền lợi của mình. Phát hiện ra vi phạm, họ chỉ muốn phân xử qua cơ quan hành chính chứ không đưa ra toà án. Cơ quan hành chính giải quyết thì nhanh nhưng mức độ xử lại rất nhẹ so với mức độ vi phạm nên người vi phạm sẽ không chùn tay. Trong khi đó, quyền tuyên phạt của toà án có tính răn đe rất cao nhưng lại ít được phát huy. Vì thế, cuộc vận động tôn trọng quyền sở hữu trí tuệ cũng sẽ phải lưu ý đến vấn đề này. (Pháp Luật TPHCM 24/6/2005)
Ngay sau khi Bộ Văn Hoá Thông Tin cùng với BSA và VINASA cùng ký lá thư gửi 12.000 DN Việt Nam về tôn trọng quyền sở hữu trí tuệ PM, báo Thanh Niên đã thu thập một số ý kiến của các DN.
Theo ông Trần Thế Nam, giám đốc CNTT của Ngân Hàng Á Châu (ACB), việc tôn trọng bản quyền PM là xu hướng không thể chối cãi nhưng vận động như thế nào thì còn tuỳ thuộc vào hoàn cảnh của mỗi DN và cần có lộ trình cho họ. Riêng với ACB, ông cho biết hiện sử dụng khoảng 1.500 máy tính và cũng cần ít nhất 3 năm mới giải quyết dứt điểm được. Theo ông, Luật đã cấm nhưng trong thực tế thì chưa có công ty PM nào ra “tối hậu thư” phải dứt điểm vào thời điểm nào. Việc thay đổi các PM sẽ ảnh hưởng không nhỏ đến quản lý sản xuất của nhiều DN, do vậy mà tuỳ vào khả năng tài chính cũng như kỹ thuật mà DN có hình thức thay đổi thích hợp. Trong lộ trình thay đổi đó, DN sẽ phải gặp gỡ với các hãng PM để thương lượng về thời gian, giá cả.
Ông Lâm Thế Dũng, giám đốc CNTT công ty Dệt Thái Tuấn thì nhìn nhận để hội nhập quốc tế, chúng ta buộc phải tuân thủ các luật chơi trong thương mại quốc tế. Do vậy, theo ông, lời kêu gọi này chỉ là một sự nhắc nhở thêm để các DN có thời gian chuẩn bị và đã đến lúc cần phải xem xét đến việc sử dụng PM có bản quyền. Theo ông, thời gian quá độ cho việc tuyên truyền vận động có thể kéo dài từ nay đến cuối năm 2006 là thích hợp, phù hợp với lộ trình Việt Nam gia nhập WTO.
Trên cương vị là một DN lắp ráp, sản xuất máy tính, ông Bùi Huy Tuấn, giám đốc công ty Huy Anh cho biết, đây là vấn đề đau đầu nhất cho thương hiệu máy tính Cgroup của công ty Huy Anh. Theo ông, để thực hiện đúng vấn đề bản quyền cho các thương hiệu máy tính Việt Nam thì rất cần sự hỗ trợ và nhượng bộ về giá của các đại gia trong lĩnh vực PM và cho biết công ty Huy Anh đã thoả thuận được với Microsft để cung cấp một dòng máy tính có hệ điều hành Windows XP có bản quyền nhưng giá “mềm”. Với bước đầu suôn sẻ này, ông cho biết sẽ tiếp tục đàm phán với các nhà cung cấp PM khác. Ông nói: “Chúng tôi nghĩ việc tuân thủ đúng các quy định về bản quyền PM là điều phải làm để hội nhập với thế giới và tạo được sự tin tưởng an tâm khi đầu tư cho các DN PM trong và ngoài nước. Ngoài ra, chỉ có tuân thủ các quy định về bản quyền mới tạo ra được một môi trường kinh doanh lành mạnh và công bằng.”
Riêng với ông Đặng Minh Tuấn, trưởng nhóm PM Vietkey Group, sự kiện mới đây giữa Bộ Văn Hoá Thông Tin, BSA và VINASA đã được mong đợi từ lâu. Ông hy vọng nhờ đó, những bước khởi động này sẽ tạo nên một thói quen mới, ủng hộ và tôn trọng sức lao động trong lĩnh vực PM. Với các sản phẩm nước ngoài, tôn trọng bản quyền PM sẽ giúp cho đối tác nước ngoài tin tưởng và đầu tư nhiều hơn vào thị trường Việt Nam. Sự tự trọng cũng như uy tín của người Việt Nam trong lĩnh vực này cũng sẽ được nâng cao. Với các sản phẩm trong nước, tôn trọng bản quyền là ủng hộ về mặt tinh thần và tài chính cho các đơn vị sản xuất PM, giúp công ty tồn tại... (Thanh Niên 25/6/2005)
Kể từ ngày 1/7/2005, VNPT sẽ áp dụng 4 gói cước mới cho dịch vụ Internet ADSL với mức cước thấp nhất có 28.000 đồng/tháng. Như vậy, người sử dụng Internet đã được hưởng lợi vì giá thành đã hạ. Tuy nhiên, vấn đề là cần phải nhìn sang công nghiệp nội dung thông tin trên Internet của Việt Nam.
Hiện tại, số lượng tên miền có đuôi .vn đang hoạt động mới chỉ có khoảng 4.500 trên tổng số gần 11.000 đã đăng ký. Còn nếu tính đến cả các tên miền không có đuôi .vn thì con số lớn hơn gấp nhiều lần. Tuy nhiên, mức độ cập nhật thông tin của các website này là một vấn đề vì theo nghiên cứu của công ty Vinalink - một DN chuyên về dịch vụ trực tuyến thì ngoại trừ các thành phố như Hà Nội, Đà Nẵng, TPHCM thì các cổng giao tiếp điện tử của nhiều địa phương cũng chỉ cập nhật trung bình 10 lần/năm. Còn với DN thì tần suất cập nhật khoảng 1 lần/năm (với web tĩnh) và 10 lần/năm (với web động). Cụ thể với website www.nghean.gov.vn ngày 23/6/2005 thì cả 5 tin tại trang chủ đều cập nhật từ ngày 30/9/2005. Còn website www.hatay.gov.vn thì chỉ có vài trang tĩnh, thông tin đơn giản và mang tính giới thiệu. Còn với các website kinh doanh thương mại điện tử (rao vặt, bán hàng) thì đều có mức độ cập nhật cao và nội dung phong phú. Tuy nhiên, các thông tin chủ yếu là ĐTDĐ, máy tính, nhà đất... còn các dịch vụ trực tuyến khác đều rất hạn chế.
Liên quan đến việc cập nhật thông tin tiếng Việt lên Internet, ông Vũ Hoàng Liên, giám đốc công ty VDC cho biết là nhìn chung, cung chưa đủ cầu. Riêng về mảng thông tin không phục vụ kinh doanh (thông tin dịch vụ từ các cơ quan quản lý, tổ chức xã hội...) ông tỏ ý tiếc vì nhiều cơ quan chưa thực hiện chức năng này một cách tương xứng trong môi trường mạng. Vì thế, băng thông rộng hiện mới phục vụ nhu cầu giải trí.
Trong khi chờ đợi, game trực tuyến đang được các nhà cung cấp dịch vụ Internet đẩy lên như một cứu tinh cho ADSL. Còn hiện tại, ADSL giúp việc đọc báo điện tử thực hiện được nhanh hơn. Theo Vinalink, trong số 40% người dùng net tại các website của Việt Nam, 20% là đọc báo điện tử, 10% vào các diễn đàn, web ca nhạc, giải trí, tìm việc... Số người thực sự dùng Internet vào việc tìm thông tin chuyên ngành, tra cứu thông tin liên quan đến công việc riêng chỉ chiếm khoảng 10%. 60% còn lại hoàn toàn vào các website nước ngoài mà đơn giản là với các dịch vụ chat, mail, điện thoại trực tuyến... (Lao Động 24/6/2005)


text:
- Trang này dùng để xác nhận người truy cập là người Việt Nam.
- Câu trả lời không phân biệt HOA thường và có thể nhập có dấu hoặc không dấu.

WARC-Truncated: length

Server: cloudflare-nginx

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

X-Frame-Options: SAMEORIGIN

Vary: Accept-Encoding


text: phlippo

markdown: phlippo

Content-Language: en

Connection: Close

Cache-Control: no-cache

Vary: User-Agent


text:
Alyssa Ashley White Musk By Alyssa Ashley For Women. Eau De Toilette Spray 3.4 Oz.
Sản phẩm này được bán tại www.amazon.com
Thương hiệu: Alyssa Ashley
Ngay sau khi quý khách đặt hàng và thanh toán, ShipTo.vn sẽ mua sản phẩm từ Mỹ và vận chuyển về Việt Nam
Sản phẩm tạm thời ngưng bán trên Amazon. ShipTo.vn sẽ theo dõi và tìm mua từ nhà cung cấp khác
Chọn số lượng:Xem chi tiết sản phẩm tại www.amazon.com
-
Giá giảm 10-50%
so với hàng xách tay
-
100% sản phẩm thật
được mua trực tiếp từ Mỹ
-
Hoàn tiền 100%
nếu hàng bị thất lạc hư hỏng
-
Miễn phí dịch vụ
nếu giao hàng trễ
Mua hàng theo yêu cầu
-
1.Đặt mua
Đặt mua những sản phẩm được ShipTo.vn tuyển chọn, hoặc gửi link của sản phẩm muốn mua để nhận báo giá.
-
2.Thanh toán
Thanh toán cho ShipTo.vn (tiền mặt, chuyển khoản, hoặc thẻ tín dụng).
-
3.Vận chuyển
ShipTo.vn mua hàng từ nước ngoài, chuyển về Việt Nam, và lo tất cả thủ tục hải quan.
-
4. Giao hàng
ShipTo.vn giao hàng tận nơi miễn phí trong vòng 10 - 20 ngày làm việc kể từ ngày thanh toán.
Vận chuyển theo yêu cầu
-
1.Đăng ký địa chỉ Mỹ
Đăng ký tài khoản ShipTo.vn có ngay địa chỉ riêng tại Mỹ.
-
2.Tự mua hàng
Tự mua tại bất kỳ website nào và chuyển hàng tới địa chỉ Mỹ của bạn.
-
3.Vận chuyển
ShipTo.vn nhận hàng, kiểm hàng và chuyển quốc tế.
-
4. Giao hàng
ShipTo.vn thông quan, giao hàng tận tay và thu tiền dịch vụ.
ĐĂNG KÝ EMAIL ĐỂ BẮT ĐẦU

markdown:
[0](/mua-hang/gio-hang)
# Alyssa Ashley White Musk By Alyssa Ashley For Women. Eau De Toilette Spray 3.4 Oz.
Sản phẩm này được bán tại
[www.amazon.com](http://www.amazon.com/Alyssa-Ashley-White-Women-Toilette/dp/B000XE38NY)
Thương hiệu:
[Alyssa Ashley](/thuong-hieu/alyssa-ashley_th820)
Ngay sau khi quý khách đặt hàng và thanh toán, ShipTo.vn sẽ mua sản phẩm từ Mỹ và vận chuyển về Việt Nam
Sản phẩm tạm thời ngưng bán trên Amazon. ShipTo.vn sẽ theo dõi và tìm mua từ nhà cung cấp khác
Chọn số lượng:
[Xem chi tiết sản phẩm tại www.amazon.com](http://www.amazon.com/Alyssa-Ashley-White-Women-Toilette/dp/B000XE38NY)
-
Giá giảm 10-50%
so với hàng xách tay
-
100% sản phẩm thật
được mua trực tiếp từ Mỹ
-
Hoàn tiền 100%
nếu hàng bị thất lạc hư hỏng
-
Miễn phí dịch vụ
nếu giao hàng trễ
#### Mua hàng theo yêu cầu
-
1.Đặt mua
Đặt mua những sản phẩm được ShipTo.vn tuyển chọn, hoặc gửi link của sản phẩm muốn mua để nhận báo giá.
-
2.Thanh toán
Thanh toán cho ShipTo.vn (tiền mặt, chuyển khoản, hoặc thẻ tín dụng).
-
3.Vận chuyển
ShipTo.vn mua hàng từ nước ngoài, chuyển về Việt Nam, và lo tất cả thủ tục hải quan.
-
4. Giao hàng
ShipTo.vn giao hàng tận nơi miễn phí trong vòng 10 - 20 ngày làm việc kể từ ngày thanh toán.
#### Vận chuyển theo yêu cầu
-
1.Đăng ký địa chỉ Mỹ
Đăng ký tài khoản ShipTo.vn có ngay địa chỉ riêng tại Mỹ.
-
2.Tự mua hàng
Tự mua tại bất kỳ website nào và chuyển hàng tới địa chỉ Mỹ của bạn.
-
3.Vận chuyển
ShipTo.vn nhận hàng, kiểm hàng và chuyển quốc tế.
-
4. Giao hàng
ShipTo.vn thông quan, giao hàng tận tay và thu tiền dịch vụ.
[ Mở rộng](javascript:void(0);) [ Thu gọn](javascript:void(0);)
ĐĂNG KÝ EMAIL ĐỂ BẮT ĐẦU

Cache-Control: private, no-cache="Set-Cookie"

Set-Cookie: website_id=1; expires=Thu, 22-Feb-2018 17:00:00 GMT; path=/


text:
TIN TỨC VỀ THƯ RÁC từ khắp thế giới
SPAMfighter là 1 công ty quốc tế được chấp nhận về chương trình chống spam với users từ các
238 countries/areas và chúng tôi hiện tại ủng hộ trong 20 ngôn ngữ
Follow SPAMfighter on Twitter or join our Facebook fan page or our G+ page to interact with us and other SPAMfighters. You are not alone out there.

markdown:
TIN TỨC VỀ THƯ RÁC từ khắp thế giới
![ ](/i/new/BoxHLcorner.gif)
![ ](/i/new/BoxHRcorner.gif)
SPAMfighter là 1 công ty quốc tế được chấp nhận về chương trình chống spam với users từ các
**238 **countries/areas và chúng tôi hiện tại ủng hộ trong 20 ngôn ngữ
Follow SPAMfighter on
[Facebook fan page](http://www.facebook.com/SPAMfighters) or our [G+ page](https://plus.google.com/111863627751489313076) to interact with us and other SPAMfighters. You are not alone out there. ![ ](/i/new/BoxLLcorner.gif)
![ ](/i/new/BoxLRcorner.gif)

Content-Type: text/html

Content-Language: vi


text:
Thị trường chứng khoán
Tài chính quốc tế
Tài chính ngân hàng
Bất động sản
Hàng hóa - Nguyên liệu
Kinh tế - Đầu tư
Doanh nghiệp
Câu chuyện kinh doanh
Diễn đàn - Bạn đọc
Ngày 14/7, Bộ trưởng Bộ Tài chính Đinh Tiến Dũng đã có buổi gặp mặt Ban quản lý dự án Formosa và thăm Khu công nghiệp Vũng Áng.Bộ trưởng đánh giá cao quy mô cùng các lĩnh vực mà Formosa đang đầu tư tại Hà Tĩnh và khẳng định đây sẽ là dự án đầu tư của doanh nghiệp nước ngoài có quy mô lớn nhất tại Việt Nam.Chia sẻ về sự cố ngày 14/5 vừa qua khi một số đối tượng quá khích lợi dụng việc một số công nhân và nhân dân biểu tình, biểu thị lòng yêu nước và phản đối việc Trung Quốc đặt giàn khoan Hải dương 981 vào thềm lục địa của Việt Nam, vi phạm nghiêm trọng công ước quốc tế về Luật biển, vi phạm nghiêm trọng các cam kết cao cấp của 2 nước, Bộ trưởng Đinh Tiến Dũng khẳng định đó chỉ là sự cố ngoài mong muốn của Chính phủ Việt Nam và các nhà đầu tư nước ngoài.Thời gian qua, Bộ Tài chính đã có nhiều biện pháp hỗ trợ các doanh nghiệp nước ngoài tại 3 tỉnh Bình Dương, Đồng Nai và Hà Tĩnh. Đối với Tập đoàn Formosa, tới đây Công ty Bảo hiểm Dầu khí (PVI) sẽ tạm ứng trước khoản tiền 1 triệu USD bồi thường thiệt hại cho doanh nghiệp.Bộ trưởng khẳng định những cam kết mạnh mẽ từ Chính phủ Việt Nam và các chính sách hỗ trợ đã làm yên lòng nhà đầu tư nước ngoài. Bên cạnh việc ổn định chính sách kinh tế vĩ mô, tạo môi trường đầu tư thuận lợi, trong thời gian tới, Bộ Tài chính sẽ tiếp tục tham mưu cho Chính phủ có những giải pháp đồng bộ, hiệu quả tạo thuận lợi cho các doanh nghiệp an tâm đầu tư làm ăn lâu dài tại Việt Nam.
>>>Chính thức có văn bản “bác” đề xuất lập đặc khu của Formosa
Theo Gafin

Content-Type: application/xhtml+xml; charset=utf-8


text:
Thị trường chứng khoán
Tài chính quốc tế
Tài chính ngân hàng
Bất động sản
Hàng hóa - Nguyên liệu
Kinh tế - Đầu tư
Doanh nghiệp
Câu chuyện kinh doanh
Diễn đàn - Bạn đọc
CTCP Sông Đà 5 (SD5): Quỹ Đầu tư Chứng khoán Việt Nam (VF1) - cổ đông lớn - đăng ký mua 150.000 CP, bán 50.000 CP nâng lượng cổ phiếu nắm giữ từ 1.153.800 CP tương đương tỷ lệ 12,82% lên 1.253.800 CP. Giao dịch dự kiến thực hiện từ ngày 08/12/2010 đến ngày 06/02/2011.
Công ty cổ phần Khoáng sản & Vật liệu Xây dựng Lâm Đồng (LBM): LBM đăng ký mua 200.000 cổ phiếu quỹ nâng lượng cp quỹ nắm giữ từ 142.500 đơn vị tương đương tỷ lệ 1,68% lên 342.500 đơn vị tương đương tỷ lệ 4,03%. Giao dịch dự kiến thực hiện từ ngày 13/12/2010 đến ngày 13/03/2011.
T.Nguyễn
Theo Hose/ HNX


text: Cháy hàng tòa nhà cao cấp Thống Nhất Complex Hà Nội Nằm ngay tại vị trí giữa Hà Nội Hà Nội, Chung cư Thống Nhất Nguyễn Tuân – Tâm điểm Chung cư bất độ... Đọc thêm


text:
Thuốc
Nhà thuốc
Phòng khám
Bệnh viện
Công ty
Trang chủ
Hỏi đáp
Cập nhật thuốc
Tính BMI
THÔNG TIN THUỐC
Gửi câu hỏi>>
Bạn đọc phản hồi
( 79 )
Xem thêm
Bình luận
Gửi bình luận
Ý kiến của bạn sẽ được biên tập trước khi đăng. Xin vui lòng gõ tiếng Việt có dấu
Tối thiểu 10 chữ
Tiếng Việt có dấu
Không chứa liên kết
Các câu hỏi
Được quan tâm
Tác dụng của hoạt chất Curcumin từ cây nghệ vàng VN
Viên nang Phục linh-Lishou
Thuốc trị nám da, sạm da, tàn nhang
Giá thuốc Viagra
Hỏi về Boganic( VNB-0826-03 )
Mua thuốc cai nghiện ở đâu?
Thuốc phụ bì khang bán với giá bao nhiêu tiền một hộp
Hỏi về Prednisolon 5mg Jenapharm( VN-9339-05 )
Giá bán Cốt thoái vương bao nhiêu ?
Hỏi về công dụng của thuốc Glucosamin
viên uống trắng da toàn thân
Thuoc biet duoc
|
Thuốc biệt dược
|
Thuốc
|
Thuoc
|
Nhà thuốc
|
Phòng khám
|
Bệnh viện
|
Công ty dược phẩm
- Các thông tin về thuốc trên Thuocbietduoc.com.vn chỉ mang tính chất tham khảo - Khi dùng thuốc cần tuyệt đối tuân theo theo hướng dẫn của Bác sĩ
- Chúng tôi không chịu trách nhiệm về bất cứ hậu quả nào xảy ra do tự ý dùng thuốc dựa theo các thông tin trên Thuocbietduoc.com.vn
"Thông tin Thuốc và Biệt Dược" - Giấy phép ICP số 235/GP-BC.
© Copyright Thuocbietduoc.com.vn - Email:
contact@thuocbietduoc.com.vn

markdown:
|
|
|
|
|
- Các thông tin về thuốc trên Thuocbietduoc.com.vn chỉ mang tính chất tham khảo
- Khi dùng thuốc cần tuyệt đối tuân theo theo hướng dẫn của Bác sĩ
|
- Chúng tôi không chịu trách nhiệm về bất cứ hậu quả nào xảy ra do tự ý dùng thuốc dựa theo các thông tin trên Thuocbietduoc.com.vn
|
|
"Thông tin Thuốc và Biệt Dược" - Giấy phép ICP số 235/GP-BC.
© Copyright Thuocbietduoc.com.vn - Email:

X-Powered-By-Plesk: PleskWin


text: Tổng thống Obama phát biểu chia tay người dân nước Mỹ 17:28, 11/01/2017 Thế giới Tổng thống Obama phát biểu chia tay người dân nước Mỹ sau 8 năm cầm quyền.

markdown:
![ Tổng thống Obama phát biểu chia tay người dân nước Mỹ](http://media.tinmoi24h.info/resize/205x115/files/anh.le/2017/01/11/tt-obama-phat-bieu-chia-tay-nha-trang-1207.jpg)
![ Tổng thống Obama phát biểu chia tay người dân nước Mỹ](http://media.tinmoi24h.info/resize/205x115/files/anh.le/2017/01/11/tt-obama-phat-bieu-chia-tay-nha-trang-1207.jpg)
[Tổng thống Obama phát biểu chia tay người dân nước Mỹ](http://www.tinmoi24h.info/tong-thong-obama-phat-bieu-chia-tay-nguoi-dan-nuoc-my-d2615.html)
Tổng thống Obama phát biểu chia tay người dân nước Mỹ sau 8 năm cầm quyền.
Tổng thống Obama phát biểu chia tay người dân nước Mỹ sau 8 năm cầm quyền.

Cache-Control: public

X-Fastcgi-Cache: MISS


text:
[VM] Ma Thần Tranh Phách - 魔神争霸OL
IP Máy ảo : 192.168.100.101
Hướng dẫn chạy server :
1.Bật máy ảo chạy Start Server rồi click lần lượt các server sau đó nhấn nút đỏ 1 lần
2.Máy thật vào 192.168.100.101/reg.html BẰNG IE để đăng kí 1 tài khoản
Client vào Startgame.exe để vào game
Server : Google Drive hoặc Safeshared.com hoặc Fshare.vn
Client : Safeshared.com hoặc Google Drive hoặc Fshare.vn
Pass giải nén : tuan565.blogspot.com
=)) một phát 3 game liền thank thím để test dầnReplyDelete
con 4Story server nhẹ hều đó . máy ảo 512MB ramDelete
Quan trọng nhất 3 con mới có dịch được không tuấn ơi :dReplyDelete
2 con kia không biết nhưng con này có thể VH, :dDelete
sau khi biết có thể VH thì đừng có nãn nhé :-s
Game này nhân vật có thể chọn trường phái gì thế các bác, skill đẹp không vậyDelete
Tùy theo cảm nhận của từng người thôi muốn chơi thì tải ko thì thôiDelete
Có tools + tut việt hóa con này k bạn nhỉ :DReplyDelete
tuấn ơi mình việt hóa một số server trong data thì bị giới hạn từ . Bạn có biết cách chỉnh không. ( SQL server 2005)ReplyDelete

markdown:
**IP Máy ảo : 192.168.100.101** **Hướng dẫn chạy server :** **1.Bật máy ảo chạy Start Server rồi click lần lượt các server sau đó nhấn nút đỏ 1 lần** **2.Máy thật vào 192.168.100.101/reg.html BẰNG IE để đăng kí 1 tài khoản** **Client vào Startgame.exe để vào game** **Server :** [Google Drive](https://drive.google.com/file/d/0B1Zg3a1ag2N6QmFoQ2V3dlRHSnc/edit?usp=sharing)hoặc [Safeshared.com](http://safeshared.com/KBkLv9JaYC3r-WJQzFe4slJw)hoặc [Fshare.vn](http://www.fshare.vn/file/TRZYV7T1GT/) **Client :** [Safeshared.com](http://safeshared.com/Hz1n7N0TcJCH0maf40C9AH03)hoặc [Google Drive](https://drive.google.com/file/d/0B1Zg3a1ag2N6Q0RuZUJfMUVad1k/edit?usp=sharing)hoặc [Fshare.vn](http://www.fshare.vn/file/TBQCRQP2MT/) **Pass giải nén : tuan565.blogspot.com**
=)) một phát 3 game liền thank thím để test dầnReplyDelete
con 4Story server nhẹ hều đó . máy ảo 512MB ramDelete
Quan trọng nhất 3 con mới có dịch được không tuấn ơi :dReplyDelete
2 con kia không biết nhưng con này có thể VH, :dDelete
sau khi biết có thể VH thì đừng có nãn nhé :-s
Game này nhân vật có thể chọn trường phái gì thế các bác, skill đẹp không vậyDelete
Tùy theo cảm nhận của từng người thôi muốn chơi thì tải ko thì thôiDelete
Có tools + tut việt hóa con này k bạn nhỉ :DReplyDelete
tuấn ơi mình việt hóa một số server trong data thì bị giới hạn từ . Bạn có biết cách chỉnh không. ( SQL server 2005)ReplyDelete