Hiển thị kết quả từ 1 đến 5 / 5

Chủ đề: PIVOT nhiều cột?

  1. #1
    Tham gia
    22-06-2006
    Bài viết
    72
    Like
    2
    Thanked 1 Time in 1 Post

    PIVOT nhiều cột?

    Mình có bảng như sau:

    SanPham Quy SoLuongKeHoach SoLuongThucHien
    A Quy1 1000 800
    A Quy2 1000 900
    A Quy3 1000 1000
    A Quy4 1000 700
    B Quy1 500 600
    B Quy2 600 400
    B Quy3 700 800
    B Quy4 700 900


    Làm sao ra được kết quả như sau:
    Code:
    SanPham Q1-KH Q1-TH Q2-KH Q2-TH Q3-KH Q3-TH Q4-KH Q4-TH TONG-KH TONG-TH
    A 1000 800 1000 900 1000 1000 1000 700 4000 3400
    B 500 600 600 400 700 800 700 900 2500 2700
    PIVOT theo hàng ngang của mình là động nha mấy bạn, dữ liệu của mình là theo Tuần chứ ko theo Quý, mình để Quý để các bạn dễ nhìn. Quý thì chỉ có 4 nên PIVOT bằng tay ko sao, nhưng số Tuần là ko cố định nên buôcj phải PIVOT động.

    Mình có tạo 2 PIVOT rồi JOIN chúng với nhau nhưng ko được.
    Mong các bạn giúp đỡ!
    Quote Quote

  2. #2
    Tham gia
    10-01-2009
    Location
    Hà Nội
    Bài viết
    148
    Like
    3
    Thanked 19 Times in 16 Posts
    Quan trọng là Report động thật, nhưng cũng phải có giới hạn.

    Bạn nên xác định trước số tuần tối đa trong báo cáo là bao nhiêu.
    Tiếp theo có thể sử dụng một output parameter để đếm số tuần (trong trường hợp báo cáo không truyền vào số tuần mà số tuần này phải tự tính toán) để bên code có thể nắm được số lượng cột mà báo cáo sẽ có => design giao diện.

    Tiếp theo, tôi thường không sử dụng PIVOT, vì nó hạn chế nhiều so với CASE WHEN THEN, ví dụ với PIVOT thì không thể so sánh >, < hoặc LIKE, v.v....

    Tôi có thể giải đáp luôn thắc mắc của bạn nhưng tốt nhất bạn nên đưa code lên đây chúng ta cùng bàn luận xem bạn đã vướng, hoặc sai ở điểm nào. Như vậy tốt hơn là copy paste rồi sau quên hết cả
    Oracle DBA - Hướng dẫn Oracle HCM Y!M red_devilic

  3. #3
    Tham gia
    15-03-2010
    Bài viết
    1,562
    Like
    84
    Thanked 1,571 Times in 860 Posts
    @Red Devilic:

    Tôi không muốn đá động tới bài này là vi chuyện "làm sao thực hiện" là chuyện sơ cấp. Gần như bất cứ cái gì quanh tới quẩn lui rồi cũng có cách giải quyết.

    Cỡ trình độ này (*), khi đối diện với một vấn đề ta khoan hãy nói chuyện "làm sao thực hiện?" mà hãy nhìn lại, "mục đích là cái gì?". Một cái báo cáo vài chục cột dữ liệu thì dẫu có thực hiện xong thì cũng làm sao mà đọc?

    Khi gặp loại báo cáo thế này, người ta cứ việc xuất ra đơn giản vài cột, export kết quả sang csv, dùng Excel (hoặc phần mềm bảng tính nào đó) để import từ csv vào Excel. Dùng chức năng Pivot Table/Chart của Excel để pivot qua lại tùy thich. Lúc ấy có thể tùy tiện nới rộng thâu hẹp cho đúng với yêu cầu báo cáo. Với Excel, người đọc báo cáo có thể chú trọng vào những chỗ cần đọc.

    (*) trình độ Pivot động như vậy là trình độ nhìn CSDL theo dạng lập phương (cube).

  4. Thành viên Like bài viết này:


  5. #4
    Tham gia
    13-04-2013
    Bài viết
    52
    Like
    0
    Thanked 2 Times in 2 Posts

    re

    Theo mình, khi đã pivot thì chỉ có xuất excel là dễ xem nhất, chứ report làm sao có thể tự phát sinh thêm vài chục cột cho bạn dc.
    123quangcao. net

  6. #5
    Tham gia
    28-11-2010
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi hta1812 View Post
    Theo mình, khi đã pivot thì chỉ có xuất excel là dễ xem nhất, chứ report làm sao có thể tự phát sinh thêm vài chục cột cho bạn dc.
    Sao không? Crystal report có chức năng cross tab rất dễ thực hiện. Truyền vào cột xoay và cột ngang là ra tất

Bookmarks

Quy định

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