2011-07-19 124 views
0

到目前爲止,我有這種情況下的聲明工作,我基本上分配1或0值的結果。 現在,我想調整它並添加第二列(日期信息)。幫助oracle案例陳述

這裏的工作情況語句現在:

select 
    case when count(*) = 0 then 1 else 0 end result 
from Table1 
where 
    to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate)-1; 

結果是:

RESULT 
---------- 
    0 

現在,我想在同樣的結果集,同一日期信息(to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate)-1)

有沒有一種方法可以一次完成此操作?結果,我想獲得:

MYDT  RESULT 
------ --------- 
18-JUL-11  0 

回答

3

有幾個方面,這取決於您的數據做。

例如,如果你可以有日期多個值,但總是想的*你可以做

With Totalcount as (select 
    case when count(*) = 0 then 1 else 0 end result 
from Table1 
where 
    to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate)-1) 

SELECT DISTINCT 
     to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') MYDT, 
     totalcount.result 
FROM 
    Table1 , Totalcount 
where 
    to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate)-1 

但是,如果你想按日期來計算你需要做一個計數

select 
    to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') as mydt, 
    case when count(*) = 0 then 1 else 0 end result 
from Table1 
where 
    to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate)-1 
GROUP BY 
    to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') 
+0

謝謝。第二個是訣竅。感謝澄清這一點。是的,基本上想看看前一天是否有數據存在,這就是爲什麼我要數一數。 – cjd143SD

0
select 
    to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') as mydt, 
    case when count(*) = 0 then 1 else 0 end result 
from Table1 
where 
    to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate)-1;