2016-03-10 18 views
0

天生我有一個消息「無效的關係運算符」獲取客戶,只有當他們被09月

select distinct ig.describe from info_groupe ig 
inner join client_info ki on (ig.id=ki.id_info_group) 
where exists (select * from client k inner join client_contact kk 
on (k.id=kk.id_client) where kk.location='B' 
and kk.type_contact= 'EMAIL' 
AND substr(date, 4, 2), 
'dd.mm.yyyy'), 'MM' ='09' 
order by describe desc; 

除了每月的問題,我必須滿足的條件是,location ="B"type_contact = "EMAIL"。 我想是爲了顯示「describe」與條件位置B和型接觸=電子郵件爲有日期的所有客戶端(例如88年9月1日)09月

+1

如何存儲你的約會?如果它是一個'日期',你只能得到'提取(月份來自date_field)'或'to_char(日期,'MM')';如果它是'varchar2'(這不是一個好主意),它取決於它是如何存儲的;假設格式爲「dd.mm.yyyy」,那麼只能得到'substr(date_field,3,2)' – Aleksej

+0

@Aleksej的月份,這是日期。 Tnx –

回答

3

您可以使用EXTRACT(MONTH FROM <date column>)

select distinct ig.describe 
from info_groupe ig 
     inner join client_info ki 
     on (ig.id=ki.id_info_group) 
where exists (select * 
       from client k 
         inner join client_contact kk 
         on (k.id=kk.id_client) 
       where kk.location='B' 
       and kk.type_contact= 'EMAIL' 
       AND EXTRACT(MONTH FROM date) = 9 
      ) 
order by describe desc; 
1

試試這個:

select distinct ig.describe from info_groupe ig 
inner join client_info ki on (ig.id=ki.id_info_group) 
where exists (select * from client k inner join client_contact kk 
       on (k.id=kk.id_client) where kk.location='B' 
       and kk.type_contact= 'EMAIL' 
       AND to_char(date,'MM') ='09' 
       AND ki.id = kk.id_client) 
order by describe desc 

我假設你有client_info中的客戶端id列,我把它稱爲id_client,如果它不同,那麼改變它。

我用to_char(date,'MM')來得到月份。

+0

在表中,client_info存在列「id」,「id」與client_contact kk(... WHERE ki.id = kk.id_client))中的「id_client」連接。但我得到「缺少右括號」 –

+0

@GoranBartBartolić立即嘗試 – sagi

+0

現在查詢通過,但沒有返回任何行(沒有選擇行)。 –

相關問題