Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
bài tập query QLTV tìm tác giả có nhiều sách nhất?
#1
em làm bài tập quản lí thư viện trên access
cô bảo tự đặt câu hổi với query và trả lời(mỗi loại query tối thiếu 2 câu)
em đã làm sẳn,có thiết sót gì mong các anh chị chỉnh sủa lại giúp em với,và có câu hỏi query nào nói em với và hướng giải quyết luôn ạ

trong đó có bảng Tác giả,và sách
giờ dùng query làm thế nào để biết (hiển thị duy nhất) tác giả viết nhiều sách
em làm được nhưng phải tạo 2 query,1 là sách viết của từng tác giả,2 tính max cột đếm sách trong query 1
giờ em muốn làm trong 1 query thì sao ạ
https://www.kleii.com/f/51b5f7c206bbad0712000002
em cám ơn007
Chữ ký của chichchoe_anvoi Xin chào, mình là chichchoe_anvoi, Tham gia http://thuthuataccess.com/forum từ ngày 28-03 -13.
Reply
Những người đã cảm ơn
#2
Bạn hãy nghiên cứu một giải pháp đơn giản sau đây nhé. Xin chú ý đến từ khóa
TOP 1: Lấy 1 bản ghi đầu tiên trong danh sách và
ORDER BY ...DESC: Sắp xếp kết quả theo danh sách từ cao xuống thấp
Toàn bộ câu truy vấn này có nghĩa là: Lấy 1 bản ghi đứng đầu danh sách từ kết quả sắp xếp từ cao đến thấp.
Mã PHP:
SELECT TOP 1 a.tentgCount(b.tensach) AS [Số đầu sách]
FROM tacgia AS a INNER JOIN sach AS b ON a.matg b.matg
GROUP BY a
.tentg
ORDER BY Count
(b.tensachDESC
(Chú ý, nếu có nhiều tác giả có cùng số lượng sách thì nó chỉ lấy duy nhất 1 bản ghi thôi).
Còn nhiều cách khác nhưng phức tạp hơn với các câu truy vấn lồng nhau. Tôi không giới thiệu!
Hy vọng giúp được bạn.
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn chichchoe_anvoi , haquocquan , Xuân Thanh
#3
nhưng ở đây mình làm bài tập cô bắt buộc phải thực hiện trên query,không phải sql ạ
giờ mình làm,thì chọn những bảng nào và làm thế nào ạ

Mã PHP:
SELECT TOP 1 a.tentgCount(b.tensach) AS [Số đầu sách]
FROM tacgia AS a INNER JOIN sach AS b ON a.matg b.matg
GROUP BY a
.tentg
ORDER BY Count
(b.tensachDESC
mình cho mình hỏi INNER JOIN là gì ạ
ON là gì
desc là gì nữa,tại mình ko dc học sql
Chữ ký của chichchoe_anvoi Xin chào, mình là chichchoe_anvoi, Tham gia http://thuthuataccess.com/forum từ ngày 28-03 -13.
Reply
Những người đã cảm ơn
#4
(11-06-13, 06:02 PM)chichchoe_anvoi Đã viết: nhưng ở đây mình làm bài tập cô bắt buộc phải thực hiện trên query,không phải sql ạ
giờ mình làm,thì chọn những bảng nào và làm thế nào ạ

Mã PHP:
SELECT TOP 1 a.tentgCount(b.tensach) AS [Số đầu sách]
FROM tacgia AS a INNER JOIN sach AS b ON a.matg b.matg
GROUP BY a
.tentg
ORDER BY Count
(b.tensachDESC
mình cho mình hỏi INNER JOIN là gì ạ
ON là gì
desc là gì nữa,tại mình ko dc học sql

Không biết bạn học trường nào, nhưng mình đoán cô giáo dạy chưa đến nơi hoặc hướng dẫn các bạn một cách quá sơ sài dẫn đến có những lỗ hổng đáng tiếc trong kiến thức.
1. Bản chất Query là câu lệnh truy vấn được viết bằng ngôn ngữ truy vấn có cấu trúc SQL (Structured Query Language). Access lưu thành đối tượng để quản lý trong cửa sổ CSDL để tiện sử dụng.
Bạn cần đọc lại sách hướng dẫn về cái này một cách cẩn trọng.

2. Câu truy vấn tôi đưa ra cho bạn là theo yêu cầu của bạn "Truy vấn từ nhiều bảng có mối liên quan với nhau"
Ở đây INNER JOIN là chỉ lấy các bản ghi từ 2 bảng thỏa mãn sao mã tác giả bằng nhau;
Nếu đọc thêm bạn sẽ biết một chút về LEFT JOIN (lấy tất cả các bản ghi trong bảng a và thêm vào bằng các bản ghi trên bảng b thỏa mãn tác giả bằng nhau)
RIGHT JOIN là ngược lại của LEFT JOIN.
...
Từ khóa ON là để biểu thị trường liên quan giữa 2 bảng (xem trong ví dụ).

3. DESC là DESCENDING = Giảm dần và ASC là Ascending là Tăng dần. Đây là những kiến thức tối thiểu về Query.

Cách đưa câu truy vấn này vào Query thế nào, bạn hãy thử mò lại sách xem sao nhé. Nếu không làm được, hãy hỏi lại, tôi sẽ hướng dẫn kỹ hơn. (Nhấn phải chuột vào Query, chọn Design, tại màn hình soạn Query, nhấn phải chuột chọn SQL View, và dán đoạn truy vấn trên vào, nhấn Run có hình chấm than hoặc F5 để chạy).

Túm lại. Bạn cần đọc kỹ sách của giáo viên cung cấp. Nếu trong sách mà không có thì có 3 khả năng:
1. Sách viết quá tồi
2. Bạn không chú ý nghe giảng và hướng dẫn thực hành;
3. Cô giáo quá thiếu trách nhiệm.
Nhưng theo quan điểm của tôi, việc hỏi như vậy của bạn cũng đáng được đánh giá cao. Và hy vọng bạn đừng tự ái, hãy hỏi nhiều hơn và phải đọc nhiều hơn, đừng hỏi lại những cái mình đã hỏi thì sẽ luôn luôn có người trả lời cho bạn.
Thân!
Đặng Đình Ngọc
P/S: Xin lỗi nếu tôi góp ý hơi quá. Tôi thuộc lớp người cũ, khi giảng, tôi thường khá khó tính với học viên! Bạn thông cảm nhé!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn chichchoe_anvoi , Xuân Thanh , Truong Van Truong
#5
(11-06-13, 10:31 PM)paulsteigel Đã viết:
(11-06-13, 06:02 PM)chichchoe_anvoi Đã viết: nhưng ở đây mình làm bài tập cô bắt buộc phải thực hiện trên query,không phải sql ạ
giờ mình làm,thì chọn những bảng nào và làm thế nào ạ

Mã PHP:
SELECT TOP 1 a.tentgCount(b.tensach) AS [Số đầu sách]
FROM tacgia AS a INNER JOIN sach AS b ON a.matg b.matg
GROUP BY a
.tentg
ORDER BY Count
(b.tensachDESC
mình cho mình hỏi INNER JOIN là gì ạ
ON là gì
desc là gì nữa,tại mình ko dc học sql

Không biết bạn học trường nào, nhưng mình đoán cô giáo dạy chưa đến nơi hoặc hướng dẫn các bạn một cách quá sơ sài dẫn đến có những lỗ hổng đáng tiếc trong kiến thức.
1. Bản chất Query là câu lệnh truy vấn được viết bằng ngôn ngữ truy vấn có cấu trúc SQL (Structured Query Language). Access lưu thành đối tượng để quản lý trong cửa sổ CSDL để tiện sử dụng.
Bạn cần đọc lại sách hướng dẫn về cái này một cách cẩn trọng.

2. Câu truy vấn tôi đưa ra cho bạn là theo yêu cầu của bạn "Truy vấn từ nhiều bảng có mối liên quan với nhau"
Ở đây INNER JOIN là chỉ lấy các bản ghi từ 2 bảng thỏa mãn sao mã tác giả bằng nhau;
Nếu đọc thêm bạn sẽ biết một chút về LEFT JOIN (lấy tất cả các bản ghi trong bảng a và thêm vào bằng các bản ghi trên bảng b thỏa mãn tác giả bằng nhau)
RIGHT JOIN là ngược lại của LEFT JOIN.
...
Từ khóa ON là để biểu thị trường liên quan giữa 2 bảng (xem trong ví dụ).

3. DESC là DESCENDING = Giảm dần và ASC là Ascending là Tăng dần. Đây là những kiến thức tối thiểu về Query.

Cách đưa câu truy vấn này vào Query thế nào, bạn hãy thử mò lại sách xem sao nhé. Nếu không làm được, hãy hỏi lại, tôi sẽ hướng dẫn kỹ hơn. (Nhấn phải chuột vào Query, chọn Design, tại màn hình soạn Query, nhấn phải chuột chọn SQL View, và dán đoạn truy vấn trên vào, nhấn Run có hình chấm than hoặc F5 để chạy).

Túm lại. Bạn cần đọc kỹ sách của giáo viên cung cấp. Nếu trong sách mà không có thì có 3 khả năng:
1. Sách viết quá tồi
2. Bạn không chú ý nghe giảng và hướng dẫn thực hành;
3. Cô giáo quá thiếu trách nhiệm.
Nhưng theo quan điểm của tôi, việc hỏi như vậy của bạn cũng đáng được đánh giá cao. Và hy vọng bạn đừng tự ái, hãy hỏi nhiều hơn và phải đọc nhiều hơn, đừng hỏi lại những cái mình đã hỏi thì sẽ luôn luôn có người trả lời cho bạn.
Thân!
Đặng Đình Ngọc
P/S: Xin lỗi nếu tôi góp ý hơi quá. Tôi thuộc lớp người cũ, khi giảng, tôi thường khá khó tính với học viên! Bạn thông cảm nhé!

trước hết cám ơn anh
Nhưng em học cao đẳng mà trường em chia làm 2 môn một là cơ sở dữ liệu 1 CSDL I,và cái quan trọng mà em nghĩ anh nói trên là CSDL II MySQL,chắc tại em chưa học đến,ở CSDL I mà em được học thì SQL chỉ học 1 tiết thôi anh,mà cũng không chuyên sâu,chủ yếu Selet...From...Where
ở đây là bài tập thực hành tạo CSDL quản lí thư viện,và tự đặt câu hỏi rồi giải quyết bằng query,và làm việc trong lưới QBE đó anh(không biết em dùng từ đúng ko nữa),chứ ko làm việc với SQL(tại chưa được học mà anh),nên giờ với câu hỏi của em,là em muốn hỏi đặt điều kiện như thế nào trong lưới QBE đó anh
mong anh giúp đỡ
[Hình: rrliuf]
hoặc có thể với câu hỏi m tự đưa ra thì chỉ thực hiện với lưới QBE không được,mà phải làm với SQL
anh có thể gợi ý có em các câu hỏi khác không

à em làm cũng được nhuwg phải làm 2 query luôn đó a,có trong file em gửi
cái thứ nhất là đến số sách tác giả viết
và query thứ 2 mới tính max được
không biết gộp lại được ko a
Chữ ký của chichchoe_anvoi Xin chào, mình là chichchoe_anvoi, Tham gia http://thuthuataccess.com/forum từ ngày 28-03 -13.
Reply
Những người đã cảm ơn
#6
có ai giúp em với ạ,em cám ơn
Chữ ký của chichchoe_anvoi Xin chào, mình là chichchoe_anvoi, Tham gia http://thuthuataccess.com/forum từ ngày 28-03 -13.
Reply
Những người đã cảm ơn
#7
1/ Để hiểu bản chất về câu SQL hay query, bạn nên đọc lại những kiến thức cơ bản của nó (trong Access nhé).
2/ Bạn mở một query bất kỳ mà bạn đã thiết kế. Click phải chuột vào lưới query, chọn SQL View, bạn thấy được những gì?
3/ Tạo một query trắng (không có nguồn), click phải chuột vào lưới query, chọn SQL View, chép đoạn SQL của paulsteigel vào, sau đó lại click phải chuột chọn Query Design. Bạn nhìn thấy gì trên lưới query?
Từ đó bạn sẽ tìm ra câu trả lời cho chính mình
Mong bạn ngày càng tiến bộ
Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn paulsteigel
#8
Với những yêu cầu hiện tại thì bạn hoàn toàn có thể dùng QBE để làm, có chăng là chưa phát hiện hết các tính năng của QBE thôi.
Bạn hãy quan sát tôi đưa từ khóa TOP 1 vào query bằng hình ảnh sau đây này!
Nhấn chuột vào vùng thiết kế của QBE, chọn phải chuột, Properties, màn hình sau sẽ hiện ra để bạn làm nhiều việc đấy!
[Hình: QBE.png]
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn chichchoe_anvoi
#9
cám ơn paulsteigel [color=#FF0000] e làm được rồi ạ
nhưng có điều em không hiểu
Mã PHP:
từ khóa TOP 1 
là để hiện thị huy nhất cái lớn nhất đúng ko ạ,nếu top values mà mình thay bằng 2 thì nó hiện 2 cái lớn nhất đúng ko ạ
còn nếu muốn cái nhỏ nhất thì sao ạ
Các anh thông cảm,ở lớp em học CSDL I(ko liên quan SQL),còn thực hành học access thì cô ko dạy mà tự tìm hiểu,chủ yếu lập bảng,
nên em cũng ko biết nhiều nữa
cám ơn
ai có thể cho em gợi ý một vài câu truy vấn query làm trong QBE không ạ
Chữ ký của chichchoe_anvoi Xin chào, mình là chichchoe_anvoi, Tham gia http://thuthuataccess.com/forum từ ngày 28-03 -13.
Reply
Những người đã cảm ơn
#10
(12-06-13, 09:43 PM)chichchoe_anvoi Đã viết: cám ơn paulsteigel [color=#FF0000] e làm được rồi ạ
nhưng có điều em không hiểu
Mã PHP:
từ khóa TOP 1 
là để hiện thị huy nhất cái lớn nhất đúng ko ạ,nếu top values mà mình thay bằng 2 thì nó hiện 2 cái lớn nhất đúng ko ạ
còn nếu muốn cái nhỏ nhất thì sao ạ
Các anh thông cảm,ở lớp em học CSDL I(ko liên quan SQL),còn thực hành học access thì cô ko dạy mà tự tìm hiểu,chủ yếu lập bảng,
nên em cũng ko biết nhiều nữa
cám ơn
ai có thể cho em gợi ý một vài câu truy vấn query làm trong QBE không ạ

Đúng rồi đấy bạn. Từ khóa TOP để lấy những bản ghi đầu trong danh sách. Vậy nếu bạn muốn lấy phần tử nhỏ nhất thì hãy thử tư duy một chút xem danh sách nên được sắp xếp thế nào nhỉ? Cách sắp xếp theo trường nào thì bạn biết rồi đúng không?
Nếu bạn muốn gợi ý thì bạn nên bắt đầu từ loại Truy vấn mà trong QBE hỗ trợ soạn thảo. Ví dụ
+ Loại Append với từ khóa INSERT INTO để thêm bản ghi vào một bảng;
+ Loại Create - tạo mới cũng với từ khóa INSERT INTO để tạo bảng mới từ bảng có sẵn hoặc CREATE TABLE để tạo bảng theo yêu cầu;
+ Loại truy vấn SELECT để lấy bản ghi từ bảng;
+ Loại UPDATE để thiết lập giá trị mới cho trường dữ liệu dựa vào điều kiện....
Và còn nhiều loại nữa.
Bạn có thể lên mạng tìm sách về SQL để đọc (có khá nhiều sách tiếng Việt).
Nếu bạn biết tiếng Anh sơ sơ thì hãy cố gắng phát triển vốn tiếng Anh của mình. Với kinh nghiệm của mình thì tiếng Anh gần như là quả bộc phá cửa mở trong đánh trận dẫn mình đến các loại kiến thức mới thuộc các lĩnh vực khác.
Thân!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn chichchoe_anvoi


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Lọc query có điều kiện để tạo report honglv157 3 160 01-12-16, 05:15 PM
Bài mới nhất: maidinhdan
  [Help] Xin giúp đỡ về sử dụng hàm Dlookup với nhiều điều kiện dangh5 1 73 30-11-16, 10:44 PM
Bài mới nhất: dangh5
  [Help] ẩn nút ""Close Windown" khi mở query tronghieu9792 4 86 30-11-16, 09:36 PM
Bài mới nhất: tronghieu9792
Question [Help] Cần giúp đỡ tạo query lấy giá trị của dòng liền trước để tính giá trị trung bình luonguct 4 89 23-11-16, 12:33 AM
Bài mới nhất: luonguct
  Hướng Dẫn hướng dẫn làm query tieuho828 6 150 21-11-16, 12:36 AM
Bài mới nhất: toancvp

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ