Đánh giá chủ đề:
  • 7 Votes - 3.43 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Nhờ chỉ giúp query thống kê
#1
Tôi muốn làm 1 báo cáo trong đó thống kê số liệu theo từng tháng. Trong cơ sở dữ liệu có các mã đơn vị: GD01, GD02, HS01, HS02. Mỗi đơn vị hàng tháng phát sinh một đợt đăng ký thẻ 12 tháng.
Ví dụ:
- GD01 tháng 01/2010 đăng ký 30 thẻ, giá trị từ 01/01/2010 đến 31/12/2010
.................................................. .................................................. .........
- GD01 tháng 10/2010 đăng ký 50 thẻ, giá trị từ 01/10/2010 đến 30/09/2011
tháng 11 đăng ký 60 thẻ, giá trị từ 01/11/2010 đến 31/10/2011
tháng 12 đăng ký 40 thẻ, giá trị từ 01/12/2010 đến 30/11/2011
tháng 01/2011 đăng ký 50 thẻ, giá trị từ 01/01/2011 đến 31/12/2011
- Khi ta chọn tháng 1/2011 để thống kê thì làm sao để chỉ lọc ra số lượng thẻ còn giá trị đến thời điểm thống kê. Cụ thể 50 + 60 + 40 + 50 không cộng 30 thẻ đã hết hạn 31/12/2010.
- Các mã GD01, GD02 cộng chung một nhóm, tương tự với HS01, HS02
- Xin chỉ cách xuất báo cáo như trên bằng VBA, Query hay bất cứ thứ gì cũng được! xin cảm ơn!
- Một vấn đề nữa là làm sao để khi chọn mã đơn vị ở combo madv thì tên đơn vị tương ứng nhảy vào textbox tendonvi và lưu vào csdl như những field khác?


File đính kèm
.zip   ThongKe.zip (Kích cỡ: 43.22 KB / Tải về: 80)
Chữ ký của longho Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#2
1/Khi ta chọn tháng 1/2011 để thống kê thì làm sao để chỉ lọc ra số lượng thẻ còn giá trị đến thời điểm thống kê. Cụ thể 50 + 60 + 40 + 50 không cộng 30 thẻ đã hết hạn 31/12/2010.
Khi chạy, nó hỏi Cho tới ngày, ví dụ bạn muốn tháng 1 thì phải nhập: 01/01/2011 .
Sau này nâng cao mình hướng dẫn thêm cách nào chỉ nhập tháng. Nhưng tạm thời thế đã.

Query như sau
Mã:
SELECT Sum(dulieu.sothe) AS SumOfsothe
FROM dulieu
WHERE (((dulieu.ngaycuoi)>[Cho toi ngay:]));

2/Các mã GD01, GD02 cộng chung một nhóm, tương tự với HS01, HS02
Query
Mã:
SELECT Sum(dulieu.sothe) AS SumOfsothe, Left([madv],2) AS nhom
FROM dulieu
WHERE (((dulieu.ngaycuoi)>[Cho toi ngay:]))
GROUP BY Left([madv],2);

Báo cáo thì phải là report, bạn mò mẫm tự tạo report xong rồi tính tiếp.

Lưu ý về cách đặt vấn đề về tiêu đề bài viết. Để được support tốt trên thủ thuật access, bạn cần rạch ròi về tiêu đề, vấn đề nào tiêu đề đó để những người khác đọc khi gặp vấn đề tương tự. Vì Yêu cầu của bạn là query nên mình sẽ không support các vấn đề khác trong topic này!
Noname
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan
#3
Lần đầu gửi bài nên chưa có kinh nghiệm mong bạn thông cảm!
- Bạn vui lòng chỉ mình Query nhập theo tháng và năm nhé: vì mình thường làm một cái form trong đó có 2 textbox tháng và năm để truyền giá trị vào query (mình làm kiểu spin button theo hướng dẫn của Ông văn Thông) và dùng query làm nguồn cho Report.
- Để được hướng dẫn về combobox mình phải mở topic mới phải k bạn?
Chữ ký của longho Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn Noname
#4
Còn 1 vấn đề nữa là kết quả của query không đúng! nhập tháng nào cũng ra 1 kết quả thôi?
Chữ ký của longho Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#5
Ko hiểu ý của bạn.
Làm gì có chỗ nào nhập tháng.
Bạn nêu cụ thể hơn được không?
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#6
(22-02-11, 09:42 PM)haquocquan Đã viết: Ko hiểu ý của bạn.
Làm gì có chỗ nào nhập tháng.
Bạn nêu cụ thể hơn được không?
-Ý mình nói là khi nhập 01/01/2011 nó ra là GD=690 HS = 300. Khi nhập là 01/02/2011 cũng ra kết quả y như vậy.
- Mình nhờ chỉ làm cái query giống như trên nhưng không phải nhập cã ngày/tháng/năm mà chỉ nhập tháng/năm thôi. Trên query mình có một field: THANG: Left(Mid([ngaycuoi],4),2) có dòng criteria là [forms]![thang]![thangbaocao]và NAM: Left(Mid([ngaycuoi],7),4) có dòng criteria là [forms]![thang]![nambaocao]
Chữ ký của longho Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#7
Bạn nhập 01/11/2010 ở ô nào? mà form của bạn là form nhập liệu có nguồn từ table cơ mà. Nhập liệu có nghĩa là bạn nhập vào luôn table.
Ý bạn muốn có form thống kê đúng không?
Trong file của bạn chỉ có form nhaplieu thôi.
Bạn muốn nhập vào từng text box và ra dư liệu ở sub form đối với các record cũ?
Vẫn không hiểu ý của bạn.
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#8
- Đúng là chưa hiểu nhau thật!!!
- Mình đang nói về query thứ 2 mà bạn noname hướng dẫn đó. Nhưng thay vì khi chạy query mình phải nhập ngày/tháng/năm cần thống kê vào thì làm sao để chỉ cần nhập tháng/năm thôi và cái query nói trên ra kết quả cũng chưa đúng.
mục tiêu của ta là khi ta chọn tháng thống kê là tháng 01/2011 thì những mã đơn vị nào có ngày cuối từ 31/01/2011 trở đi sẽ được cộng vào. Còn những mã đơn vị có ngày cuối từ 31/12/2010 thì bỏ qua!

Chữ ký của longho Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#9
Mình đã xem lại dữ liệu của bạn:
Ngày cuối cùng thấp nhất của bạn là 30/09/2011. Cho nên bạn có gõ 01/2011 hay 02/2011 hay 08/2011 thậm chí 09/2011 cũng như nhau cả thôi. Bạn phải gõ từ 10/2011 trở đi thì mới thấy khác được.
Chúc thành công
Chữ ký của haquocquan Guest, you are welcome!
ღღღღღTài sản của haquocquan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#10
Rất cảm ơn vì bạn đã kiên nhẫn, mong bạn tiếp tục giúp đở:
- Cái query trên mới chỉ tính theo ngày cuối mà chưa có ngày đầu. Ví dụ ngày bắt đầu là 01/10/2010 thì một năm sau hết hạn là 30/09/2011 như vậy từ tháng 10/2010 đến tháng 09/2011 nó sẽ được cộng vào. qua tháng 10/2011 thì mới bỏ ra. Theo cơ sở dữ liệu thì kết quả ra được như thế này mới đúng nè bạn:
- Năm 2010: từ tháng 01 đến 09 năm 2010: không có
+ tháng 10: GD= 210(150+60), HS=50
+ Tháng 11: GD= 370(150+60+110+50), HS=100(50+50)
+ Tháng 12: GD= 490(150+60+110+50+70+50), HS=150(50+50+50)
- Năm 2011:
+ Tháng 01: GD=590(150+60+110+50+70+50+50+50), HS=250(50+50+50+50+50)
+ Tháng 02: GD=690(150+60+110+50+70+50+50+50+50+50), HS=300(50+50+50+50+50+50)
- Từ tháng 3 đến tháng 9 bằng với tháng 2
- Tháng 10: GD=480(110+50+70+50+50+50+50+50), HS=250(50+50+50+50+50)
...vv...
Không biết cách diễn giãi của mình như thế có ổn không !!!



Chữ ký của longho Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn


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 158 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ơ