Đánh giá chủ đề:
  • 5 Votes - 2.6 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thêm số thứ tự trong Query
#1
Hỏi:Trong query của access, có cách nào thêm được trường số thứ tự vào không? VD mình select từ bảng DM_DoiTuong được các trường HoTen, NgaySinh, QueQuan. Mình muốn thêm vào cột STT

Đáp: Quochoi_05 - Danketoan
Mã:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+1 AS STT, DM_DoiTuong.HoTen, DM_DoiTuong.NgaySinh, DM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong.HoTen;
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Minh Tiên , bvchauthanh
#2
(16-09-10, 09:09 PM)Noname Đã viết: Hỏi:Trong query của access, có cách nào thêm được trường số thứ tự vào không? VD mình select từ bảng DM_DoiTuong được các trường HoTen, NgaySinh, QueQuan. Mình muốn thêm vào cột STT

Đáp: Quochoi_05 - Danketoan
Mã:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+1 AS STT, DM_DoiTuong.HoTen, DM_DoiTuong.NgaySinh, DM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong.HoTen;

Trước giờ mình ít quan tâm đến việc đánh số thứ tự trong query vì công việc này có thể chuyển sang report làm một cách dễ dàng. Khi mình thấy bài này thì quá hay và đơn giản. Nhưng sau khi text thử mình thấy nó xảy ra các trường hợp như sau:
1/ Khi làm theo cách bạn Noname, cột STT được sắp theo thứ tự từ nhỏ đến lớn.

Mã PHP:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+AS STTDM_DoiTuong.HoTenDM_DoiTuong.NgaySinhDM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong
.HoTen

[Hình: gs3SAPO.png]

Nhưng
2 / Nếu thay đổi Sort field HoTen từ Ascending sang Descending, cột STT được sắp theo thứ tự từ lớn đến nhỏ.

Mã PHP:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+AS STTDM_DoiTuong.HoTenDM_DoiTuong.NgaySinhDM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong
.HoTen DESC

[Hình: ciMHXb9.png]

Việc này cũng có cái hay của nó, chúng ta có thể lợi dụng nó để xử lý nhiều thứ. Nhưng xét về vấn đề đánh số thứ tự thì cột STT nguyên tắc phải bắt đầu đánh số liên tục từ 1 cho đến hết mà không phụ thuộc vào các sắp xếp của các field khác. Bạn Noname và các bạn khác suy nghĩ thêm có cách nào không?
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan , bvchauthanh
#3
hỏi mình có table xeploai: Namhoc, hocky1,hocky2, hocky3, hocky4. Table Thongtinsv: Khoahoc, ...

vd. Khóa học.2015-2020 thì khi nhấn vào table xeploai thì trường năm học sẽ bắt đầu từ năm 2015 đến 2020 thôi.

xin giúp đỡ

(31-05-15, 12:20 AM)tranthanhan1962 Đã viết:
(16-09-10, 09:09 PM)Noname Đã viết: Hỏi:Trong query của access, có cách nào thêm được trường số thứ tự vào không? VD mình select từ bảng DM_DoiTuong được các trường HoTen, NgaySinh, QueQuan. Mình muốn thêm vào cột STT

Đáp: Quochoi_05 - Danketoan
Mã:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+1 AS STT, DM_DoiTuong.HoTen, DM_DoiTuong.NgaySinh, DM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong.HoTen;

Trước giờ mình ít quan tâm đến việc đánh số thứ tự trong query vì công việc này có thể chuyển sang report làm một cách dễ dàng. Khi mình thấy bài này thì quá hay và đơn giản. Nhưng sau khi text thử mình thấy nó xảy ra các trường hợp như sau:
1/ Khi làm theo cách bạn Noname, cột STT được sắp theo thứ tự từ nhỏ đến lớn.

Mã PHP:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+AS STTDM_DoiTuong.HoTenDM_DoiTuong.NgaySinhDM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong
.HoTen

[Hình: gs3SAPO.png]

Nhưng
2 / Nếu thay đổi Sort field HoTen từ Ascending sang Descending, cột STT được sắp theo thứ tự từ lớn đến nhỏ.

Mã PHP:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+AS STTDM_DoiTuong.HoTenDM_DoiTuong.NgaySinhDM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong
.HoTen DESC

[Hình: ciMHXb9.png]

Việc này cũng có cái hay của nó, chúng ta có thể lợi dụng nó để xử lý nhiều thứ. Nhưng xét về vấn đề đánh số thứ tự thì cột STT nguyên tắc phải bắt đầu đánh số liên tục từ 1 cho đến hết mà không phụ thuộc vào các sắp xếp của các field khác. Bạn Noname và các bạn khác suy nghĩ thêm có cách nào không?
Chữ ký của tieuho828 tieuho828,gia nhập Thủ Thuật Access từ 08-05 -16.
Reply
Những người đã cảm ơn
#4
(10-05-16, 11:21 PM)tieuho828 Đã viết: hỏi mình có table xeploai: Namhoc, hocky1,hocky2, hocky3, hocky4. Table Thongtinsv: Khoahoc, ...

vd. Khóa học.2015-2020 thì khi nhấn vào table xeploai thì trường năm học sẽ bắt đầu từ năm 2015 đến 2020 thôi.

xin giúp đỡ


Chỉ cần tạo Query lọc là xong.

1. Tạo thêm cột trong Query, dùng hàm left cắt lấy 4 kí tự bên trái và chuyển thành số.
2. Gõ vào dòng Criteria ở cột mới tạo : bằng hàm BetWeen...And

Thân mến!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
vậy mình thêm một dòng rồi, dòng thứ 2phair tự thêm làm như thế nào cho mình bài demo di ban. Mình trả lời trên điện thoại không gửi file được
(11-05-16, 09:37 AM)maidinhdan Đã viết:
(10-05-16, 11:21 PM)tieuho828 Đã viết: hỏi mình có table xeploai: Namhoc, hocky1,hocky2, hocky3, hocky4. Table Thongtinsv: Khoahoc, ...

vd. Khóa học.2015-2020 thì khi nhấn vào table xeploai thì trường năm học sẽ bắt đầu từ năm 2015 đến 2020 thôi.

xin giúp đỡ


Chỉ cần tạo Query lọc là xong.

1. Tạo thêm cột trong Query, dùng hàm left cắt lấy 4 kí tự bên trái và chuyển thành số.
2. Gõ vào dòng Criteria ở cột mới tạo : bằng hàm BetWeen...And

Thân mến!
Chữ ký của tieuho828 tieuho828,gia nhập Thủ Thuật Access từ 08-05 -16.
Reply
Những người đã cảm ơn
#6
(16-09-10, 09:09 PM)Noname Đã viết: Hỏi:Trong query của access, có cách nào thêm được trường số thứ tự vào không? VD mình select từ bảng DM_DoiTuong được các trường HoTen, NgaySinh, QueQuan. Mình muốn thêm vào cột STT

Đáp: Quochoi_05 - Danketoan
Mã:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+1 AS STT, DM_DoiTuong.HoTen, DM_DoiTuong.NgaySinh, DM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong.HoTen;

Em không hiểu câu Query trên, Nhờ anh giải thích hộ em. Trân trọng cảm ơn
Chữ ký của huuduy.duy Xin chào, mình là huuduy.duy, Tham gia http://thuthuataccess.com/forum từ ngày 24-06 -13.
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#7
(16-09-10, 09:09 PM)Noname Đã viết: Hỏi:Trong query của access, có cách nào thêm được trường số thứ tự vào không? VD mình select từ bảng DM_DoiTuong được các trường HoTen, NgaySinh, QueQuan. Mình muốn thêm vào cột STT

Đáp: Quochoi_05 - Danketoan
Mã:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+1 AS STT, DM_DoiTuong.HoTen, DM_DoiTuong.NgaySinh, DM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong.HoTen;
mã này chép vào đâu thì chạy được vậy bạn , có thể cho mình xin file được không?
Chữ ký của toidjtjmtoi toidjtjmtoi,gia nhập Thủ Thuật Access từ 29-06 -16.
Reply
Những người đã cảm ơn
#8
(13-07-16, 11:31 PM)toidjtjmtoi Đã viết:
(16-09-10, 09:09 PM)Noname Đã viết: Hỏi:Trong query của access, có cách nào thêm được trường số thứ tự vào không?
mã này chép vào đâu thì chạy được vậy bạn , có thể cho mình xin file được không?

Mã này chép vào trong Query, cụ thể là chổ nút Design/View của Query bạn nhấn vào nút dấu mũ đi xuống bạn thấy chữ SQL nhấn vào rồi dán code vô. ( Bình thường bạn tạo Query code này tự động sinh ra, có những thủ thuật nâng cao ta phải tự viết bằng tay vào trong đó giống như xếp hạng học sinh từ thấp đến cao, đánh số thứ tự...)

Xem Demo này có file đính kèm luôn: Hướng Dẫn Demo Code Xếp hạng trong Query giống như hàm Rank trong Excel

HÌnh minh họa
[Hình: codeSQLXephang.jpg]
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#9
(16-09-10, 09:09 PM)Noname Đã viết: Hỏi:Trong query của access, có cách nào thêm được trường số thứ tự vào không? VD mình select từ bảng DM_DoiTuong được các trường HoTen, NgaySinh, QueQuan. Mình muốn thêm vào cột STT

Đáp: Quochoi_05 - Danketoan
Mã:
SELECT (Select Count (*) FROM [DM_DoiTuong ] as Temp WHERE [Temp].[HoTen] < [DM_DoiTuong].[HoTen])+1 AS STT, DM_DoiTuong.HoTen, DM_DoiTuong.NgaySinh, DM_DoiTuong.QueQuan
FROM DM_DoiTuong
ORDER BY DM_DoiTuong.HoTen;

Xin hỏi bác NONAME một chút nữa. 
em có một table danh sách Học sinh (mã UNI code), em tạo một query của danh sách đó. Trong query này em đã thêm cột XẾPABC (e đã làm được bằng cách tạo một table chứa mã, một modul XEP ABC như bác CADAFI nào đó hướng dẫn). Tuy nhiên em muốn thêm cột STT nữa theo danh sách đã xếp ABC đã xếp ở trên thì ko được, nó cứ xếp theo thứ tự của table danh sách thôi. (em cũng đã dung code của bác rùi..)

Em ko đính kèm file nên trang này được (tìm mãi ko thấy nút đính kèm đâu!!! Hik)
Chữ ký của diepvien1989 diepvien1989,gia nhập Thủ Thuật Access từ 29-06 -16.
Reply
Những người đã cảm ơn
#10
(07-09-16, 05:42 PM)diepvien1989 Đã viết: Xin hỏi bác NONAME một chút nữa. 
em có một table danh sách Học sinh (mã UNI code), em tạo một query của danh sách đó. Trong query này em đã thêm cột XẾPABC (e đã làm được bằng cách tạo một table chứa mã, một modul XEP ABC như bác CADAFI nào đó hướng dẫn). Tuy nhiên em muốn thêm cột STT nữa theo danh sách đã xếp ABC đã xếp ở trên thì ko được, nó cứ xếp theo thứ tự của table danh sách thôi. (em cũng đã dung code của bác rùi..)

Em ko đính kèm file nên trang này được (tìm mãi ko thấy nút đính kèm đâu!!! Hik)

Đính kèm dùm file:

Trước khi bạn khác trở lời, mình gợi ý bạn. Là dùng 2 cái query để xếp hạng cho nó. Cứ tưởng tượng cái Query thứ 1 dùng hàm Xếp ABC là table Danh sách. Thì Cái query thứ 2 sẽ dùng lệnh để xếp STT.

Thân mến!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn huuduy.duy , diepvien1989


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 161 01-12-16, 05:15 PM
Bài mới nhất: maidinhdan
  [Help] ẩn nút ""Close Windown" khi mở query tronghieu9792 4 87 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 151 21-11-16, 12:36 AM
Bài mới nhất: toancvp
  [Hỏi] Sự khác nhau của Like và "=" trong các hàm D toancvp 6 204 10-11-16, 12:01 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ơ