• Tính toán các giá trị trong 1 trường
  • Tính toán các giá trị trong 1 trường

    peid210985 > 27-09-15, 10:57 AM

    Thân chào các Anh/Chị!
    Công việc của Tôi là đi đo số đồng hồ nước của các hộ gia đình trong một khu vực rồi tính ra số khối sử dụng trong từng tháng. Do nhu cầu muốn tổng hợp lượng nước tiêu thụ trong cả năm của các hộ trên theo từng tháng,,,,các tính toán khác nên Tôi có tạo 1 file access (mới nghiên cứu access) gồm 2 table: SODH(ngay,sodh); KHOI(ngay,soluong). Số đồng hồ thì Tôi sẽ nhập vào table SODH, tuy nhiên Tôi không biết có cách nào để tính ra soluong (số khối tiêu thụ) trong table KHOI. Vậy kính nhờ các Anh/Chị trên diễn đàn chỉ giúp mẹo nào đó để tính đuợc số khối nước tiêu thụ từng tháng. File đính kèm. Cảm ơn!

    Link file
  • RE: TÍNH TOÁN CÁC GIÁ TRỊ TRONG 1 TRƯỜNG

    ongke0711 > 27-09-15, 03:48 PM

    Bạn xem file Demo đính kèm.
    Tôi có làm 2 cái query (có và không có điều kiện) để tính số nước tiêu thụ: 1 cái tính toàn bộ table, 1 cái tính theo ngày ghi được nhập.

    Demo Tính số nước tiêu thụ

    [Hình: TinhSoNuocTT.png]

    Query số nước tiêu thụ không điều kiện:
    Mã PHP:
    SELECT SODH.ngaySODH.sodhSODH.sodh-(SELECT TOP 1 [sodhFROM SODH AS Q WHERE Q.sodh SODH.sodh ORDER BY Q.sodh DESC) AS SoNuocTieuThu
    FROM SODH
    WHERE 
    ((SELECT TOP 1 sodh FROM SODH AS Q WHERE Q.sodh SODH.sodhIs Not Null)
    ORDER BY SODH.sodh

    Query số nước tiêu thụ có điều kiện ngày:
    Mã PHP:
    SELECT SODH.ngaySODH.sodhSODH.sodh-(SELECT TOP 1 [sodhFROM SODH AS Q WHERE Q.sodh SODH.sodh AND SODH.ngay LIKE [Nhap ngay can kiem tra:] ORDER BY Q.sodh DESC) AS SoNuocTieuThu
    FROM SODH
    WHERE 
    ((SELECT TOP 1 sodh FROM SODH AS Q WHERE Q.sodh SODH.sodh AND SODH.ngay LIKE [Nhap ngay can kiem tra:]) Is Not Null)
    ORDER BY SODH.sodh
  • RE: Tính toán các giá trị trong 1 trường

    peid210985 > 27-09-15, 09:49 PM

    Cảm ơn Bạn!
  • RE: TÍNH TOÁN CÁC GIÁ TRỊ TRONG 1 TRƯỜNG

    peid210985 > 29-09-15, 09:57 PM

    (27-09-15, 03:48 PM)ongke0711 Đã viết: Bạn xem file Demo đính kèm.
    Tôi có làm 2 cái query (có và không có điều kiện) để tính số nước tiêu thụ: 1 cái tính toàn bộ table, 1 cái tính theo ngày ghi được nhập.

    Demo Tính số nước tiêu thụ

    [Hình: TinhSoNuocTT.png]

    Query số nước tiêu thụ không điều kiện:
    Mã PHP:
    SELECT SODH.ngaySODH.sodhSODH.sodh-(SELECT TOP 1 [sodhFROM SODH AS Q WHERE Q.sodh SODH.sodh ORDER BY Q.sodh DESC) AS SoNuocTieuThu
    FROM SODH
    WHERE 
    ((SELECT TOP 1 sodh FROM SODH AS Q WHERE Q.sodh SODH.sodhIs Not Null)
    ORDER BY SODH.sodh

    Query số nước tiêu thụ có điều kiện ngày:
    Mã PHP:
    SELECT SODH.ngaySODH.sodhSODH.sodh-(SELECT TOP 1 [sodhFROM SODH AS Q WHERE Q.sodh SODH.sodh AND SODH.ngay LIKE [Nhap ngay can kiem tra:] ORDER BY Q.sodh DESC) AS SoNuocTieuThu
    FROM SODH
    WHERE 
    ((SELECT TOP 1 sodh FROM SODH AS Q WHERE Q.sodh SODH.sodh AND SODH.ngay LIKE [Nhap ngay can kiem tra:]) Is Not Null)
    ORDER BY SODH.sodh
    Cũng phải mất nửa ngày mới hiểu được bản chất các câu lệnh SQL trên. Càng làm càng nảy sinh nhiều vấn đề thắc mắc hjx hjx 020 . Vẫn chủ đề ghi số đồng hồ và tính lượng nước. Mình có tạo 2 table (file đính kèm): HOGD(magd,tengd), SODH(ngayghi,magd,sodh1,sodh2,sodh3). Bài toán là hằng ngày mình đi ghi số đồng hồ nước cho 2 hộ gia đình, mỗi gia đình có 3 đồng hồ nước. Thân mến thắc mắc nội dung sau:
    Để tính lượng nước của từng hộ gđ theo từng ngày hoặc trong một khoảng thời gian bất kỳ thì mình tạo 2 table như thế có được không? cách làm như thế nào? 027
    Mong các bô lão định hướng giúp! 007

    Link demo
  • RE: Tính toán các giá trị trong 1 trường

    ongke0711 > 30-09-15, 01:47 PM

    Để lão có ý kiến nhé.  014
    Tôi nghĩ bạn nên ngồi liệt kê tất cả các nghiệp vụ có thể phát sinh, các yêu cầu có thể có đối với cái dữ liệu ghi đồng hồ nước rồi mới thiết kế các table liên quan để tránh sau này phải ngồi làm mới lại khi phát sinh trường hợp không truy vấn, xử lý được hoặc phức tạp v.v..
    Ví dụ: một số thông tin để thiết kế table như
    - Liên quan đến hộ gia đình: số nhân khẩu/hộ -> vì liên quan đến định mức nước sử dụng; Số định mức nước…
    - Liên quan đến thanh toán: tháng đó đã thanh toán chưa (để có thêm cột thanh toán yes/no ví dụ); Cần truy vấn GD nào, đồng hồ nào, số nước, tháng nào chưa thanh toán…
    - …
    Tôi nghĩ bạn nên thiết kế table dạng theo row để sau này dễ truy vấn chi tiết hơn.
    VD: như hình bên dưới

    [Hình: TinhSoNuoc2.png]


    Về phần truy vấn số nước tiêu thụ như bạn đề cập thì cách của tôi sẽ là:
    - Khi có nhập số đồng hồ nước mới, sẽ chạy update luôn số nước tiêu thụ (nhờ vào các query như đã gửi lúc trước). Tại sao phải cập nhật lên table cho từng phát sinh luôn vì: bạn không thể chạy cái query tính số nước tiêu thụ toàn bộ table, vì khi CSDL lớn sẽ biết hậu quả... undefined . Do đó tôi sẽ cắt ra chỉ query đến tháng trước tháng đang nhập liệu 1 tháng thôi rồi update ngay.
    - Để update, chạy query tạo table tạm số nước TT, sau đó query update table tạm đó vô table tổng hợp.
    Tôi có làm demo mấy cái query trong file đính kèm.
    Cách làm của tôi là vậy, bạn tự nghiên cứu làm thêm các phần râu ria và tham khảo ý kiến của các bô lão khác nữa nhé.

    Demo