2015-04-24 34 views
-3

任何人都可以幫助我嗎?找到季度年的記錄數

我需要創建一個SQL查詢。我得到這個表名爲 「slt_especificidade_caso」:

slt_especificidade_caso

我需要創建一個SQL查詢這讓我回到這個結構爲1行:

epc_id_pergunta:在列中的值

first_quarter:寄存器的數量(例如行數。)在此表中,其中當前日期更少( - )在柱epc_des_valor的值小於或等於90天

second_quarter:寄存器的數量(例如。在該表中的行)的數目,其中當前日期更少( - )在柱epc_des_valor的值大於90並且小於或等於180天

third_quarter:寄存器的數量(例如行數)在此。表中當前日期少於( - )列epc_des_valor中的值大於180且小於270天的表。

我將不勝感激。提前致謝!

+0

是'epc_idn_tipo_especificidade'你要錄製的數量是多少? – paqogomez

+0

hello @paqogomez,我不明白這個問題,對不起。 –

+1

你說......這張表中的記錄數量哪一列有你想記錄的數量? – paqogomez

回答

2

case語句應該這樣做。

select 
    epc_id_pergunta , 
    sum(case when str_to_date(epc_des_valor, '%d/%m/%Y') 
       between DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY) 
       AND CURRENT_DATE() 
      then 1 else 0 end) as first_quarter, 
    sum(case when str_to_date(epc_des_valor, '%d/%m/%Y') 
       between DATE_SUB(CURRENT_DATE(), INTERVAL 180 DAY) 
       AND DATE_SUB(CURRENT_DATE(), INTERVAL 90 DAY) 
      then 1 else 0 end) as second_quarter, 
    sum(case when str_to_date(epc_des_valor, '%d/%m/%Y') 
       between DATE_SUB(CURRENT_DATE(), INTERVAL 270 DAY) 
       AND DATE_SUB(CURRENT_DATE(), INTERVAL 181 DAY) 
      then 1 else 0 end) as third_quarter      
from 
    slt_especificidade_caso 
where 
    str_to_date(epc_des_valor, '%d/%m/%Y') 
       between DATE_SUB(CURRENT_DATE(), INTERVAL 270 DAY) 
       AND CURRENT_DATE() 

看看這個sql fiddle

+1

運行查詢時出現此錯誤: 錯誤代碼:1054.未知列'now'in'field list'。你知道我可能做錯了什麼嗎? –

+2

@ArthurMastropietro,我的錯誤,'current_date'是mysql的語法。 – paqogomez

+0

@ArthurMastropietro是你打算在未來還是過去處理的日期? –