2013-08-27 37 views
2

這是我的oracle查詢..我嘗試了很多,但它顯示不同的錯誤 我的條件是顯示12個月,如果沒有數據顯示0值,如果數據只顯示值.....如何在一年中的每個月組

select distinct 
COUNTRY_NAME,      
TRAN_DATE, 
ROUND (nvl(sum(WALKIN_WITHOUT_CGROUP),0)/ COUNT(*),2)APC, 
ROUND((nvl(SUM(SALES_VALUE),0)+nvl(sum(total_sales),0)-nvl(sum(net_sales),0)+nvl(sum(discount),0))/nvl(sum(BILLS_WITHOUT_CGROUP),0))ASPB, 
ROUND((nvl(SUM(SALES_VALUE),0)+nvl(sum(total_sales),0)-nvl(sum(net_sales),0)+nvl(sum(discount),0))/COUNT(*),2) ASPD, 
nvl(sum(BILLS_WITHOUT_CGROUP),0) Bill, 
trunc(nvl(SUM(SALES_VALUE),0)+nvl(sum(total_sales),0)-nvl(sum(net_sales),0)+nvl(sum(discount),0)) Sale, 
nvl(sum(WALKIN_WITHOUT_CGROUP),0) WALKINS 
from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B 
WHERE A.OUTLET_ID=B.OUTLET_ID and SALES_VALUE>0 
and rownum <=300 
group by COUNTRY_NAME,      
TRAN_DATE 

和所需的輸出應該是這樣的:

MONTH   APC    sale 
----- -------   

    01   0  0 
    02   0  0 
    03   0  0 
    04   0  12  
    05   0  14 
    06   1  0 
    07   1  0 
    08   0  0 
    09   0  0 
    10   2  0 
    11   1  0 
    12   0  0 
+0

從這個期望的輸出是什麼源數據應該是這樣的?請舉一個例子。 –

+0

找不到你.. – Exceptional

+0

你正在得到'ORA-00923:'錯誤,因爲在你的內聯視圖中逗號在文字'01'和'to_char(tran_date,'mm')之間缺失' - > 'select'01',to_char(tran_date,'mm')...' –

回答

1

你必須有在列之間用逗號在SELECT語句

select '01', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '02', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '03', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '04', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '05', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '06', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '07', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '08', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '09', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '10', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '11', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT A,OUTLET_DETAILS B union all 
select '12', to_char(tran_date,'mm') from OUTLET_PAYMODE_REPORT_FACT 
+0

加入正確的馬查詢? – Exceptional

+0

我不知道,因爲你指定的錯誤原因是這個逗號,試試吧,讓我們知道是否有任何進一步的問題,以便我將進一步評估@Exeptional –

+0

我已編輯,我已經嘗試過,但再次顯示錯誤,如java.sql.SQLException:ORA-00920:無效的關係運算符 – Exceptional

1

以我的經驗,8出10例

ORA-00923: FROM keyword not found where expected 

錯誤是由於缺少一個逗號

+0

迴應請... – Exceptional

相關問題