데이터베이스

[oracle] 주사위 제한 관련 쿼리

지승준 2013. 11. 1. 09:51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
select                                                                     
    max(case when A.WIN_NO = 1 and A.CNT < 30 then A.CNT else null end) WIN_NO_1, 
    max(case when A.WIN_NO = 2 and A.CNT < 30 then A.CNT else null end) WIN_NO_2, 
    max(case when A.WIN_NO = 3 and A.CNT < 10 then A.CNT else null end) WIN_NO_3, 
    max(case when A.WIN_NO = 4 and A.CNT < 10 then A.CNT else null end) WIN_NO_4, 
    max(case when A.WIN_NO = 5 and A.CNT < 30 then A.CNT else null end) WIN_NO_5, 
    max(case when A.WIN_NO = 6 and A.CNT < 30 then A.CNT else null end) WIN_NO_6, 
    max(case when A.WIN_NO = 7 and A.CNT < 10 then A.CNT else null end) WIN_NO_7, 
    max(case when A.WIN_NO = 8 and A.CNT < 30 then A.CNT else null end) WIN_NO_8, 
    max(case when A.WIN_NO = 9 and A.CNT < 10 then A.CNT else null end) WIN_NO_9, 
    max(case when A.WIN_NO = 10 and A.CNT < 30 then A.CNT else null end) WIN_NO_10, 
    max(case when A.WIN_NO = 11 and A.CNT < 1 then A.CNT else null end) WIN_NO_11, 
    max(case when A.WIN_NO = 12 and A.CNT < 10 then A.CNT else null end) WIN_NO_12 
from (select WIN_NO, count(WIN_NO) CNT from TBL_EVENT_MARBLE group by WIN_NO ) a 
 
 
 
 
select 
    WIN_NO 
from 
    (select WIN_NO, count(WIN_NO) cnt from TBL_EVENT_MARBLE group by WIN_NO ) 
where 
    cnt < (case 
    when 
        WIN_NO = 1 or WIN_NO = 2 or WIN_NO = 5 or WIN_NO = 6 or WIN_NO = 8 or WIN_NO = 10 then 30 
    when 
        WIN_NO = 3 or WIN_NO = 4 or WIN_NO = 7 or WIN_NO = 9 or WIN_NO = 12 then 10 
    when 
        WIN_NO = 11 then 1 else null end ) 
cs