Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tính tích lũy trong ACCess
#1
Chào các bạn.
Mình muốn nhờ các bạn trợ giúp
Mình có một bảng dữ liệu gồm tên [hạng mục], [ngày], [khối lượng]
Các bạn giúp mình là cách nào tạo một SQL liệt kê các hạng mục như trên kèm theo một cột khối lượng tích lũy theo ngày nữa. Mình loay hoay mãi mà không nghĩ ra.
Khối lượng tích lũy bằng khối lượng ngày này cộng khối lượng ngày trước đó

thank
Chữ ký của daominh80 Xin chào, mình là daominh80, Tham gia http://thuthuataccess.com/forum từ ngày 18-05 -13.
Reply
Những người đã cảm ơn
#2
Trong SQL là không thể. Thông thường tôi hay sử dụng VBA để tính lũy kế phát sinh đưa kết quả ra table tạm rồi sử dụng table tạm hoặc đưa ra report mà dùng. Hoặc cũng có thể dùng query làm nguồn cho report rồi xử lý tích lũy ngay trên report.
Thân mến
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
(19-05-13, 01:06 PM)Xuân Thanh Đã viết: Trong SQL là không thể. Thông thường tôi hay sử dụng VBA để tính lũy kế phát sinh đưa kết quả ra table tạm rồi sử dụng table tạm hoặc đưa ra report mà dùng. Hoặc cũng có thể dùng query làm nguồn cho report rồi xử lý tích lũy ngay trên report.
Thân mến

Bạn có thể giúp mình theo 2 phương án mà bạn đưa ra được không? thank!!
Chữ ký của daominh80 Xin chào, mình là daominh80, Tham gia http://thuthuataccess.com/forum từ ngày 18-05 -13.
Reply
Những người đã cảm ơn
#4
1/ CSDL gồm 2 table
tblKhoiLuong : HangMuc, Ngay, KhoiLuong
tblKhoiLuongTichLuy : HangMuc, Ngay, KhoiLuong, KhoiLuongTichLuy
2/ Chép cái này vào môt modul và chạy nó

Mã PHP:
Function TinhTichLuy(strHangMuc As StringDenNgay As Date) As Double
    Dim rs 
As RecordsetrsT As Recordset
    Set rs 
CurrentDb.OpenRecordset("Select * from tblKhoiLuong Where HangMuc = '" strHangMuc "'")
    
Set rsT CurrentDb.OpenRecordset("tblKhoiLuongTichLuy"dbOpenTable)
    If 
rs.RecordCount 0 Then
        rs
.MoveFirst
        Dim KL 
As Double
        KL 
0
        
Do Until rs.EOF
            
If rs!Ngay DenNgay Then Exit Do
            
rsT.AddNew
            rsT
!HangMuc strHangMuc
            rsT
!Ngay rs!Ngay
            rsT
!KhoiLuong rs!KhoiLuong
            rsT
!KhoiLuongTichLuy KL rs!KhoiLuong
            rsT
.Update
            KL 
KL rs!KhoiLuong
            rs
.MoveNext
        Loop
    End 
If
    
rs.ClosersT.Close
End 
Function 

Nó sẽ cộng tich lũy từ ngày đầu tiên nhập liệu đến ngày bạn chỉ định của một hạng mục cho trước
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
#5
Cám ơn bạn về bài viết, đợt này mình đi công tác nên chẳng có thời gian ngó đến. Từ bài viết của bạn mình đã làm được.
Trân trọng!
Chữ ký của daominh80 Xin chào, mình là daominh80, Tham gia http://thuthuataccess.com/forum từ ngày 18-05 -13.
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
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ỏi] Tính số ngày công tác trangdv.pchg 25 579 13-11-16, 01:20 PM
Bài mới nhất: ongke0711
  [Hỏi] Sự khác nhau của Like và "=" trong các hàm D toancvp 6 202 10-11-16, 12:01 AM
Bài mới nhất: toancvp
  Thay thế giá trị từ cột này sang cột khác trong 1 query trungminh 6 137 08-11-16, 03:24 PM
Bài mới nhất: ongke0711
  Điền Mr hoặc Ms theo giới tính huuduy.duy 8 489 04-11-16, 05:58 PM
Bài mới nhất: huuduy.duy

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ơ