Giúp em về Tồn đầu, Nhập trong và Xuất trong

Thảo luận trong 'Ứng dụng Access' bắt đầu bởi vietskynet, 4 Tháng tư 2008.

2,224 lượt xem

  1. vietskynet

    vietskynet Thành viên sơ cấp

    Bài viết:
    1
    Đã được thích:
    0
    Nơi ở:
    HCM
    Em đang tập làm phần thống kê xuất nhập tồn cho 1 công ty bán hàng tạp hóa , mỗi tháng phải đưa ra 4 dữ liệu sau đây

    Tồn đầu kỳ, nhập trong kỳ, xuất trong kỳ và tồn cuối kỳ của từng mặt hàng

    Về tồn cuối thì ko bàn vì chỉ là kết quả 3 cột kia thôi.
    Em muốn hỏi cách thống kê 3 cột kia sao cho hay nhất

    Cấu trúc chính trong CSDL là 1 bảng "Hóa Đơn Nhập" , "Hóa đơn xuất", "chi tiết hàng nhập" và chi tiết hàng xuất

    Như vậy nếu em muốn truy vấn tồn đầu kỳ thì em sẽ tính Sum tất cả các đợt nhập hàng bắt đầu từ tháng trước, sau đó tính Sum hàng nhập và hàng xuất trong tháng
    Vấn đề em đặt ra là
    1- Có thể thống kê như vậy bằng Access ko (1 query truy vấn 3 dữ kiện đó), hay bắt buộc phải nhờ đến Excel
    2- Doanh nghiệp hoạt đống mới vài tháng thì việc quét dữ liệu tồn đầu kỳ không khó nhưng hoạt động 6-7 năm mà truy vấn kiều này thì hơi phí tài nguyên, không biết có giải pháp gì ko (tạo bảng mới....)

    Em cám ơn, mới bước chân vào thống kê em đã gặp bài toán mệt bão nên phải hỏi các trùm
    Sửa/Xóa nội dung
     
    #1
  2. LoveBlue

    LoveBlue Thành viên sơ cấp

    Bài viết:
    23
    Đã được thích:
    1
    Nơi ở:
    TP.HCM
    Mình thì mình lưu dữ liệu như vầy:
    Table: nhapxuat
    ngay :date
    mahang: text 50
    type :yes/no (yes: nhập, no :xuất)
    diengiai: text: 255
    soluong: number: single
    dongia: number :douple
    Note: memo

    Như vậy, query truy xuất tồn đầu của bạn:
    Để xem xét nhập xuất tồn từ thời điểm date1 –date2 , bạn thông qua 1 query trung gian như sau: (tạm đặt tên nxuat1)
    Số lượng được hiểu nếu type= yes, cộng thêm vô, nếu no, trừ thêm ra:

    Select mahang,type, iif (type, soluong, soluong*-1) as qty , iif(ngay<date1, qty,0) as tondau, iif( (date1<= ngay) and (date2>=ngay) and (type) , qty,0) as nhap, iif( (date1<= ngay) and (date2>=ngay) and not(type) , qty,0) as xuat
    From nhapxuat



    Bây giờ query chính của bạn để xuất ra report sẽ là:
    SELECT mahang, Sum(tondau) AS tondau, Sum(nhap) AS nhap, Sum(xuat) AS xuat
    FROM nxuat1
    GROUP BY mahang;


    Như vậy bạn đã có tồn đầu, nhập, xuất trong kỳ, giờ muốn tồn cuối thì thông qua 1 query nữa, hoặc trong report bạn trừ thẳng luôn cũng được
     
    Last edited: 7 Tháng tư 2008
    #2

Chia sẻ trang này