2012-07-03 63 views
0

很抱歉,如果這個問題已經被問過,我的數據庫表的結構是這樣的:訪問SQL查詢,返回從1和表6個計數根據日期

AgentName | Sold1 | SoldDate1 | Sold2 | SoldDate2 | Sold3 | SoldDate3 
Geoff  | True | 20/06/2012 | False | Null  | True | 20/04/2012 
Alex  | True | 13/02/2012 | True | 26/06/2012 | False | Null 

基本上,我試圖做的是算在過去的一個月中,有多少Geoff在Sold1中賣出了它,但首先它必須檢查sold1是否爲真,然後再次爲Sold2和Sold3檢查。

我的目標是,使AGENTNAME分組,並顯示爲返回的數據顯示:

AgentName  TotalSold1  TotalSold2  TotalSold3 

我希望有人能幫助我花了一整天試圖找到一個解決辦法:(

+0

的名稱是'SoldDaten'總是'Null'當'Soldn'是'FALSE'? – Jodrell

+1

你嘗試什麼SQL? – Fionnuala

回答

1

TABLE_NAME是表

select t0.AgentName, CountSold1, CountSold2, CountSold3 from (
    select distinct AgentName from table_name 
) t0 left join (
    select AgentName, count(*) CountSold1 from table_name 
    where Sold1 = 'True' and SoldDate1 between '01-JUN-2012' and '30-JUN-2012' 
    group by AgentName 
) t1 on t0.AgentName = t1.AgentName left join (
    select AgentName, count(*) CountSold2 from table_name 
    where Sold2 = 'True' and SoldDate2 between '01-JUN-2012' and '30-JUN-2012' 
    group by AgentName 
) t2 on t1.AgentName = t2.AgentName left join (
    select AgentName, count(*) CountSold3 from table_name 
    where Sold3 = 'True' and SoldDate3 between '01-JUN-2012' and '30-JUN-2012' 
    group by AgentName 
) t3 on t2.AgentName = t3.AgentName 
+0

應該使用左加盟澳您將排除在3類 – Jodrell

+0

中沒有任何內容出售的代理商感謝您的快速響應,我收到一個錯誤:FROM子句中的語法錯誤,不確定可能導致它的原因 – user1499261

+0

您可以再次嘗試並給出完整的錯誤 –