• Thứ Sáu, 17/06/2011 07:56 (GMT+7)

    Tính hàng tồn kho trong CSDL Access từ 2 bảng Nhap và Xuat

    Câu hỏi :

    Xin hướng dẫn lệnh SQL tính hàng tồn kho trong CSDL Access từ 2 bảng Nhap và Xuat như sau:

    - Bảng Nhap: có 2 cột MaSP và Soluong

    - Bảng Xuat: có 2 cột MaSP và Soluong
     



    Trả lời :

    Nếu dùng Access để quản lý các bảng dữ liệu, bạn có thể thực hiện các lệnh SQL sau đây để tính số lượng hàng tồn từ 2 bảng Nhap, Xuat theo yêu cầu của bạn:

    1. Tạo bảng chứa hàng tồn kho
    Create Table TonKho(MaSP Text, SLTon int)

    2. Tạo các record tồn kho từ bảng Nhap
    Insert into TonKho
    select Nhap.MaSP, IIf(IsNull(Nhap.Soluong), 0, Nhap.Soluong)
    -IIf(IsNull(Xuat.Soluong), 0, Xuat.Soluong) as SLTon
    from Xuat right join Nhap on Xuat.MaSP = Nhap.MaSP

    3. Tạo bảng tạm chứa các record tồn kho từ bảng Xuat
    Create Table Tam(MaSP Text, SLTon int)

    4. Tạo các record tồn kho từ bảng Xuat
    Insert into Tam
    select Xuat.MaSP, IIf(IsNull(Nhap.Soluong), 0, Nhap.Soluong)
    -IIf(IsNull(Xuat.Soluong), 0, Xuat.Soluong) as SLTon
    from Nhap right join Xuat on Xuat.MaSP = Nhap.MaSP

    5. Tìm và thêm các record tồn kho từ bảng Xuat mà bảng TonKho chưa có
    Insert into TonKho
    select MaSP, SLTon from Tam where SLTon < 0

    Qui trình thực hiện các lệnh SQL trên trong Access như sau:

    1. Chạy Access, mở file database chứa các bảng Nhap, Xuat.

    2. Chọn mục Queries trong listbox Objects, ấn kép chuột vào mục "Create query in Design View", đóng cửa sổ "Show Table" lại.

    3. Trên thanh Toolbar của Access xuất hiện 1 listbox tên là SQL, chọn mục "SQL View" để hiển thị cửa sổ soạn lệnh SQL và thực thi lệnh SQL.

    4. Mỗi lần nhập 1 lệnh SQL liệt kê ở trên (từ 1 tới 5) rồi thực thi lệnh đó.

    5. Sau 5 lần soạn/thực hiện 5 lệnh SQL trên, đóng cửa sổ Query lại, chọn mục Tables trong listbox Object để hiển thị các bảng.

    6. Duyệt tìm và mở bảng TonKho để kiểm tra kết quả.

    Nếu bạn chứa các bảng dữ liệu trong database của SQL Server thì bạn có thể nhập và chạy đoạn script chứa các lệnh SQL sau đây để tạo bảng TonKho:

    --Tạo bảng chứa hàng tồn kho
    Create Table TonKho(MaSP nText, SLTon int)

    --Tạo các record tồn kho từ bảng Nhap
    Insert into TonKho
    select Nhap.MaSP, isnull(Nhap.Soluong,0)-isnull(Xuat.Soluong,0) as SLTon
    from Xuat right join Nhap on Xuat.MaSP = Nhap.MaSP

    --Tạo bảng tạm chứa các record tồn kho từ bảng Xuat
    Create Table Tam(MaSP nText, SLTon int)

    --Tạo các record tồn kho từ bảng Xuat
    Insert into Tam
    select Xuat.MaSP, isnull(Nhap.Soluong,0)-isnull(Xuat.Soluong,0) as SLTon
    from Nhap right join Xuat on Xuat.MaSP = Nhap.MaSP

    --Tìm và thêm các record tồn kho từ bảng Xuat mà bảng TonKho chưa có
    Insert into TonKho
    select MaSP, SLTon from Tam where SLTon < 0
     

    Chuyên mục: Cơ sở dữ liệu