Đánh số thứ tự theo nhóm

  • Thread starter tracanhtam
  • Ngày gửi
T

tracanhtam

Guest
18/3/07
3
0
0
60
My Tho-TG
Trong access gỉa sử tôi có 3 cột : STT, Hoten, Diem
Trong cột điểm thì có nhiều loại điểm khác nhau, tôi muốn đánh số tt theo từng nhóm điểm, hết nhóm điểm này đến nhóm điểm khác cho đến khi hết DSHS của bảng tính, vậy cần code như thế nào, nhờ mọi người chỉ giúp, xin cám ơn
 
Khóa học Quản trị dòng tiền
L

lehongduc

Trung cấp
29/3/05
131
1
18
64
VietNam
Trong access gỉa sử tôi có 3 cột : STT, Hoten, Diem
Trong cột điểm thì có nhiều loại điểm khác nhau, tôi muốn đánh số tt theo từng nhóm điểm, hết nhóm điểm này đến nhóm điểm khác cho đến khi hết DSHS của bảng tính, vậy cần code như thế nào, nhờ mọi người chỉ giúp, xin cám ơn

Chào Bạn,
Chẳng cần phải viết code đâu.
Khi thiết kế Report bạn khai báo "Sorting And Grouping" như hình đính kèm
Sau đó thiết kế như File ví dụ kèm theo là được.
Chúc khoẻ
 

Đính kèm

  • thidu.jpg
    thidu.jpg
    73.5 KB · Lượt xem: 367
  • thidu100808.zip
    10.7 KB · Lượt xem: 264
T

tracanhtam

Guest
18/3/07
3
0
0
60
My Tho-TG
Nhưng tồi cần stt đó trong bảng tính của mình để sử dụng cho công việc khác, vd như là xếp lớp hoặc stt cho hs của mỗi lớp, nhờ anh giúp dùm, xin cám ơn
 
B

btamsgn

Guest
5/12/06
6
0
0
43
TPHCM
Bạn kèm file ví dụ để dễ hình dung.

Viết như bạn, các bạn trong diễn đàn sẽ khó hình dung và nếu làm sẽ không đúng ý của bạn rồi lại lòng vòng.
 
paulsteigel

paulsteigel

Trung cấp
13/11/05
103
0
16
48
Hoà Bình
www.sfdp.net
Bạn có thể làm thế này!

Bạn tải về file ví dụ của anh lehongduc và tạo Query với cú pháp thế này, chắc là được đấy.
SELECT Q.mshs, Q.tenhocsinh, Q.diemso, (SELECT
COUNT(*) +1 FROM tblsodiem as Q1
WHERE Q1.[diemso] = Q.[diemso] AND Q.mshs>Q1.mshs) as STT
FROM tblsodiem AS Q
GROUP BY Q.mshs, Q.tenhocsinh, Q.diemso
ORDER BY Q.diemso;

Nhưng tồi cần stt đó trong bảng tính của mình để sử dụng cho công việc khác, vd như là xếp lớp hoặc stt cho hs của mỗi lớp, nhờ anh giúp dùm, xin cám ơn
Nếu bạn muốn như thế và dữ liệu cần có là ở trong bảng thì cú pháp là Select into ....
Chúc bạn thành công
 
Sửa lần cuối:
T

tracanhtam

Guest
18/3/07
3
0
0
60
My Tho-TG
Nhưng nếu tôi muố sort luôn cột họ tên để số thứ tư đó cố định , bạn giúp dùm, xin cám ơn
 
paulsteigel

paulsteigel

Trung cấp
13/11/05
103
0
16
48
Hoà Bình
www.sfdp.net
Không hiểu rõ ý đại ca lắm ạ.
Ở đây có một số điểm khó:
Do số thứ tự là sản phẩm của một Câu truy vấn lồng, vì thế kết quả là không được biết trước cho đến khi nó thực hiện xong câu điều kiện.
Chính vì vậy đại ca có thể thấy kết quả sắp xếp rất lộn xộn đúng không?
Nếu muốn như ý mình, đại ca cần làm thêm một câu truy vấn nữa và tổ chức sắp xếp theo cột STT với cột điểm trước - thì sẽ có số cố định như ý.

Đôi khi không nên quá lạm dụng mà cần sử dụng các kết quả trung gian để đạt được mục đích của mình.
Tuy nhiên, để đáp ứng ý đại ca, tiểu bối cũng giới thiệu luôn cách đặt các câu truy vấn lồng nhau để trả về kết quả mong muốn. Lưu ý là, với kiểu truy vấn này, kết quả thường hơi chậm nhé...
Select * from (SELECT Q.mshs, Q.tenhocsinh, Q.diemso, (SELECT
COUNT(*) +1 FROM tblsodiem as Q1
WHERE Q1.[diemso] = Q.[diemso] AND Q.mshs>Q1.mshs) AS STT
FROM tblsodiem AS Q
GROUP BY Q.mshs, Q.tenhocsinh, Q.diemso) as F
ORDER BY Q.diemso DESC , F.STT;
Nay kính thư!
 
Sửa lần cuối:

Xem nhiều

Webketoan Zalo OA