2012-01-19 31 views
8

Mục tiêu: Tổng/Tổng số lần chạy cho tất cả các báo cáo vào cuối mỗi tháng.Tổng số lần chạy hoặc Tổng số lần chạy của Oracle theo tháng

Code:

select 
    TRUNC(ACTHX.STMT_HX_STMT_DATE, 'MM') AS MNTH, 
    COUNT(ACTHX.INVOICE) as STMTS 
from ACTHX 
group by 
    TRUNC(ACTHX.STMT_HX_STMT_DATE, 'MM') 
ORDER BY 
    TRUNC(ACTHX.STMT_HX_STMT_DATE, 'MM') 

Output hiện tại:

MNTH  STMTS 
7/1/2009 1 
10/1/2010 4 
6/1/2011 26 
9/1/2011 211 
10/1/2011 163 
11/1/2011 119 

mong muốn đầu ra:

MNTH  STMTS 
7/1/2009 1 
10/1/2010 5 
6/1/2011 31 
9/1/2011 242 
10/1/2011 405 
11/1/2011 524 
+0

Câu hỏi được tạo đúng. GG. –

Trả lời

12

Có vẻ như bạn muốn tổng chạy. Bạn có thể sử dụng chức năng phân tích SUM cho điều đó.

select mnth, 
     sum(stmts) over (order by mnth) stmts 
    from (select TRUNC(ACTHX.STMT_HX_STMT_DATE, 'MM') AS MNTH, 
       COUNT(ACTHX.INVOICE) as STMTS 
      from ACTHX 
     group by TRUNC(ACTHX.STMT_HX_STMT_DATE, 'MM')) 
ORDER BY mnth 
+0

Đang chạy tổng ... vâng đó là những gì tôi đang tìm kiếm;) – Cimplicity

2

Một giải pháp thay thế cung cấp cùng tổng số cán mà không có truy vấn phụ.

SELECT 
     DISTINCT TRUNC(ACTHX.STMT_HX_STMT_DATE,'MM') AS MNTH 
     ,count(ACTHX.INVOICE) OVER (ORDER BY TRUNC(ACTHX.STMT_HX_STMT_DATE,'MM')) AS STMTS 
    FROM ACTHX 
    ORDER BY 
     TRUNC(ACTHX.STMT_HX_STMT_DATE,'MM') 
Các vấn đề liên quan