Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: Xuất bảng thống kê tồn kho theo tháng ra Report?

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    85

    Mặc định Xuất bảng thống kê tồn kho theo tháng ra Report?

    table tồn kho của mình có các dữ liệu như sau:


    mình muốn thống kê bảng tồn kho theo tháng để xuất ra report với công thức như sau:
    cột tondk xuất ra số lượng tondk của mặt hàng đó trong ngày nhỏ nhất của tháng (không phải ngày 1 nhe)
    cột số lượng nhập và xuất trong tháng thì bằng tổng của số lượng nhập và xuất của các ngày trong tháng của mặt hàng đó.
    cột tồn cuối kỳ xuất ra số lượng tonck của mặt hàng đó trong ngày lớn nhất trong tháng.
    ..........kết quả của việc xuất bảng báo cáo tồn kho trong tháng của bảng trên là:


    Mình không có hướng nào để giải quyết phần này cả. Hix, chỉ còn phần này nữa thôi....
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  2. #2
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Mình đã từng làm 1 bài tồn kho giống như bạn! Nhưng cột Ngay của mình là cột Tháng lun!!
    Mỗi lần nhập xuất trong tháng thì nó chỉ lưu vào tổng số lượng nhập và xuất , còn slcuối kì thì nó tự tính. Khi chuyển sang tháng mới thì cập nhập từ cái slcuôiky của tháng này cho sldauki của tháng tiếp theo.

    Còn chi tiết từng phiếu nhập,pxuat thì mỗi cái đều đã có!! Đâu cần làm thêm ngày chi tiết thế cho tồn kho. hehe.

    Còn nếu làm theo cách của bạn thì cũng có thể giải quyết đc.. Nhưng với hướng của mình thì hơi dài, hic!!

    Bạn thử đợi xem có pro nào vô chỉ có cách nào ngắn gọn ko nhé!! Nếu ko có thì mình sẽ nói cách của mình cho bạn nghe. Sợ bạn chê dài thui ^^!
    Sống là để cho đi và ...... Nhận lại

  3. #3
    Ngày gia nhập
    12 2010
    Bài viết
    85

    Trích dẫn Nguyên bản được gửi bởi linhgl88 Xem bài viết
    Mình đã từng làm 1 bài tồn kho giống như bạn! Nhưng cột Ngay của mình là cột Tháng lun!!
    Mỗi lần nhập xuất trong tháng thì nó chỉ lưu vào tổng số lượng nhập và xuất , còn slcuối kì thì nó tự tính. Khi chuyển sang tháng mới thì cập nhập từ cái slcuôiky của tháng này cho sldauki của tháng tiếp theo.

    Còn chi tiết từng phiếu nhập,pxuat thì mỗi cái đều đã có!! Đâu cần làm thêm ngày chi tiết thế cho tồn kho. hehe.

    Còn nếu làm theo cách của bạn thì cũng có thể giải quyết đc.. Nhưng với hướng của mình thì hơi dài, hic!!

    Bạn thử đợi xem có pro nào vô chỉ có cách nào ngắn gọn ko nhé!! Nếu ko có thì mình sẽ nói cách của mình cho bạn nghe. Sợ bạn chê dài thui ^^!
    Cảm ơn bạn. Lúc đầu mình cũng nghĩ như bạn, nhưng nếu thế thì người ta muốn thống kê lại 1 ngày bất kỳ trong quá khứ thì không có tonck và tondk. Với lại nếu lưu tháng thì khi người ta muốn thống kê trong năm thì cũng gặp trường hợp như mình. Khi phân tích thì phía bên thực tập bảo phải thống kê theo kỳ (kỳ của họ là ngày, rồi tháng, rồi năm luôn) như vậy mới khổ. hix...
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  4. #4
    Ngày gia nhập
    06 2011
    Bài viết
    277

    ặc!! Ngày mà cũng phải tính tồn hả trời!! hic.

    Thế thì khổ cho bạn rùi!! hehe
    Sống là để cho đi và ...... Nhận lại

  5. #5
    Ngày gia nhập
    12 2010
    Bài viết
    85

    Trích dẫn Nguyên bản được gửi bởi linhgl88 Xem bài viết
    ặc!! Ngày mà cũng phải tính tồn hả trời!! hic.

    Thế thì khổ cho bạn rùi!! hehe
    Ngày thì cũng như vậy. Nhập trong ngày, xuất trong ngày, tồn buổi sáng (tondk), tồn buổi chiều (tonck). hix. không có ai xuất được ah? Không lẽ po tay phần này sau ta?
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  6. #6
    Ngày gia nhập
    12 2010
    Bài viết
    85

    Mặc định Xuất bảng thống kê tồn kho theo tháng ra Report?

    Huhuhu......... không ai giúp mình được phần này ah?
    Học hỏi - học hỏi - học hỏi tới cùng
    --> Học hỏi đến khi nào ra vấn đề thì học hỏi vấn đề khác
    và học hỏi - học hỏi - học hỏi đến
    .

  7. #7
    Ngày gia nhập
    11 2008
    Nơi ở
    An Giang
    Bài viết
    502

    Code Demo thế này :
    SQL Code:
    1. SELECT Mahang,Ngay,
    2. (Câu truy vấn lấy ra Tondk dựa vào mã hàng và ngày nhỏ nhất của mã hàng đó) AS Tondk,SUM(Nhaptk),SUM(Xuattk),
    3. (Câu truy vấn lấy ra Tonck dựa vào mã hàng và ngày lớn nhất của mã hàng đó) AS Tonck
    4. FROM Table_Tồn Kho
    5. GROUP BY Mahang,Ngay

  8. #8
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    @huuhung:
    Câu truy vấn của ban chủ yếu là lấy kết quả trong một khoảng thời gian vô hạn.
    Chủ đề muốn lấy kết quả trong một khoảng thời gian hạn định. Nếu bạn sửa câu truy vấn để lọc lấy dữ liệu trong vòng thời gian đặt ra thì các món hàng không có xuất nhập trong khoảng thời gian trên sẽ bị loại ra.

    Không phải tại bạn sai nhưng lỗi tại cái CSDL này được thiết kế một cách hỏng bét cho nên lúc truy vấn phải để ý thật kỹ.

    Giải đáp:

    - Tìm các dòng tồn kho có trước và gần khoảng thời gian liên hệ nhất của tất cả các mặt hàng. Tồn cuối kỳ của các dòng này sẽ là tồn đầu kỳ trong khoảng thời gian liên hệ
    - Ở mỗi dòng này, tìm sum của xuất và sum của nhập trong khoảng thời gian liên hệ.
    - Tồn cuối kỳ có thể tính ra dễ dàng.

    Giải đáp trên dựa trên giả thuyết mỗi mặt hàng đều có ít nhất một dòng tồn kho.

  9. #9
    Ngày gia nhập
    06 2011
    Bài viết
    93

    Bạn có thể viết như sau:
    SQL Code:
    1. DECLARE @MONTH INT, @YEAR INT, @ngay VARCHAR(6)
    2.  
    3. SELECT @MONTH = 1, @YEAR = 2011,
    4.        @ngay = CONVERT(VARCHAR(2), @MONTH) + '/' + CONVERT(VARCHAR(4), @YEAR)
    5.        
    6. SELECT t.MaHang, @ngay AS Ngay, MIN(n.Tondk) AS Tondk, SUM(t.Nhaptk) AS Nhaptk, SUM(t.Xuattk) AS Xuattk, MAX(l.Tonck) AS Tonck
    7.   FROM TonKho t
    8. LEFT JOIN
    9. (SELECT DISTINCT k.MaHang, k.ngay, k.Tondk AS Tondk
    10.   FROM TonKho k
    11.  WHERE YEAR(k.ngay) = @YEAR AND MONTH(k.ngay) = @MONTH
    12.    AND DAY(k.ngay) = (SELECT MIN(DAY(ngay)) FROM TonKho WHERE MaHang = k.MaHang AND YEAR(ngay) = @YEAR AND MONTH(ngay) = @MONTH)) n
    13.     ON n.MaHang = t.MaHang AND n.ngay = t.ngay
    14. LEFT JOIN
    15. (SELECT DISTINCT k.MaHang, k.ngay, k.Tonck AS Tonck
    16.   FROM TonKho k
    17.  WHERE YEAR(k.ngay) = @YEAR AND MONTH(k.ngay) = @MONTH
    18.    AND DAY(k.ngay) = (SELECT MAX(DAY(ngay)) FROM TonKho WHERE MaHang = k.MaHang AND YEAR(ngay) = @YEAR AND MONTH(ngay) = @MONTH)) l
    19.     ON l.MaHang = t.MaHang AND l.ngay = t.ngay
    20.  WHERE YEAR(t.ngay) = @YEAR AND MONTH(t.ngay) = @MONTH
    21.  GROUP BY t.MaHang

    Bạn có thể dùng cursor đi từng record để làm từng phần sẽ dễ hơn nhiều khi chĩ viết một câu lệnh:
    SQL Code:
    1. DECLARE @MONTH INT, @YEAR INT, @ngay VARCHAR(6), @MaHang nvarchar(10), @Tondk INT, @Tonck INT
    2.  
    3. SELECT @MONTH = 1, @YEAR = 2011,
    4.        @ngay = CONVERT(VARCHAR(2), @MONTH) + '/' + CONVERT(VARCHAR(4), @YEAR)
    5.        
    6. SELECT MaHang, @ngay AS Ngay, 0 AS Tondk, SUM(Nhaptk) AS Nhaptk, SUM(Xuattk) AS Xuattk, 0 AS Tonck
    7.   INTO #temp
    8.   FROM TonKho
    9.  GROUP BY MaHang
    10.  
    11. DECLARE hang_cursor cursor FOR SELECT MaHang FROM #temp
    12. OPEN hang_cursor
    13. fetch NEXT FROM hang_cursor INTO @MaHang
    14. while @@FETCH_STATUS <> -1 BEGIN
    15.    
    16.     SELECT @Tondk = Tondk
    17.       FROM TonKho
    18.      WHERE MaHang = @MaHang AND YEAR(ngay) = @YEAR AND MONTH(ngay) = @MONTH
    19.        AND DAY(ngay) = (SELECT MIN(DAY(ngay)) FROM TonKho WHERE MaHang = @MaHang AND YEAR(ngay) = @YEAR AND MONTH(ngay) = @MONTH)
    20.    
    21.     SELECT @Tonck = Tonck
    22.       FROM TonKho
    23.      WHERE MaHang = @MaHang AND YEAR(ngay) = @YEAR AND MONTH(ngay) = @MONTH
    24.        AND DAY(ngay) = (SELECT MAX(DAY(ngay)) FROM TonKho WHERE MaHang = @MaHang AND YEAR(ngay) = @YEAR AND MONTH(ngay) = @MONTH)
    25.        
    26.     UPDATE #temp SET Tondk = @Tondk, Tonck = @Tonck WHERE MaHang = @MaHang
    27.    
    28.     fetch NEXT FROM hang_cursor INTO @MaHang
    29. END
    30. close hang_cursor
    31. deallocate hang_cursor
    32.  
    33. SELECT * FROM #temp
    34.  
    35. DROP TABLE #temp
    Đã được chỉnh sửa lần cuối bởi FlyingFox : 06-09-2011 lúc 09:19 AM.

  10. #10
    Ngày gia nhập
    06 2011
    Bài viết
    277

    cách của bạn FLyingFox hay đó!! Thanks nhé ^^!

    Kaka, Biết thêm cái SQL mới.
    Sống là để cho đi và ...... Nhận lại

Các đề tài tương tự

  1. Tạo report báo cáo theo tuần, theo tháng như thế nào???
    Gửi bởi giadinhvnvn trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 06-03-2013, 02:37 PM
  2. Lấy ngày đưa vào report theo 2 field từ ngày đến ngày!
    Gửi bởi linhgl88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 27-07-2011, 06:54 PM
  3. Nhúng Crystal Report vào Baocao.aspx, sau đó xuất datagridview vào Crystal Report như thế nào????
    Gửi bởi lenamshenlong trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 4
    Bài viết cuối: 17-05-2011, 06:48 AM
  4. Cách Report theo Ngày trong C# như thế nào?
    Gửi bởi huuhung trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 26-03-2011, 06:39 PM
  5. report theo ngày tháng không được!
    Gửi bởi ngo_rung trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 30-12-2010, 09:41 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn