this is my first post here.
I’m working with cheques, i have this in the Oracle 11g database
WITH cheques AS (
SELECT 1 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 2 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 3 ch_no,'T' ch_status FROM dual UNION ALL
SELECT 4 ch_no,'T' ch_status FROM dual UNION ALL
SELECT 5 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 6 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 7 ch_no,'C' ch_status FROM dual UNION ALL
SELECT 8 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 9 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 10 ch_no,'C' ch_status FROM dual UNION ALL
SELECT 11 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 12 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 13 ch_no,'X' ch_status FROM dual UNION ALL
SELECT 14 ch_no,'X' ch_status FROM dual UNION ALL
SELECT 15 ch_no,'T' ch_status FROM dual UNION ALL
SELECT 16 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 17 ch_no,'U' ch_status FROM dual UNION ALL
SELECT 18 ch_no,'I' ch_status FROM dual UNION ALL
SELECT 19 ch_no,'I' ch_status FROM dual UNION ALL
SELECT 20 ch_no,'U' ch_status FROM dual
)
I want tho get them in this way:
Status Min Max
U 1 2
U 5 6
U 8 9
U 11 12
U 16 17
U 20 20
C 7 7
C 10 10
T 3 4
T 15 15
X 13 14
I 18 19
So, In Reporting Services 2008,i will be able to show them like this:
U C T X I
Min Max Min Max Min Max Min Max Min Max
1 2 7 7 3 4 13 14 18 19
5 6 10 10 15 15
8 9
11 12
16 17
20 20
The question here is how to get this, how to get the min and max of each cheque based on their status?
I have searched, but i couldn’t find anything.
Sorry for my english.
Thanks!
This isn’t a straightforward problem and needs a number of steps.
lagto set a ‘flag’ at the start of each contiguous block ofch_nowith the samech_statussumas an analytic with anorder by(which changes the default window tounbounded preceeding) to give each contiguous block a unique identifiergroup byto calculate themin&maxfor each blockQuery:
Results:
SQL Fiddle here