2017-07-27 96 views
0

目前我使用的是Oracle報告生成Excel中的每週報告。這個報告後面有sql查詢。 oracle報表服務器大部分時間都關閉了,而且我不覺得可靠地生成每週報表。生成查詢結果在Excel

所以我想我的自動化SQL查詢並生成Excel報表,而不是複製查詢結果,並粘貼到Excel中。我可以使用Procedure或PL/SQL塊來執行此操作。但我不知道是否它可以創建Excel文件並生成使用PL/SQL.The PL/SQL塊或程序應基於RESOURCE_ID coulmn進行參數設置,我可以使用同樣的方法再資源也報告。我正在使用oracle sql開發人員工具編寫oracle查詢。

--Query 1 
select db,db_date,count(distinct sales_id) 
from Sales_Order 
where 
db='Test' 
and resource_id=2 and 
db_date between 20170710 and 20170716 
group by db,db_date 

--Query 2 
select db,db_date,count(distinct it_id) 
from IT_INFO 
where 
db='Test' 
and resource_id=2 and 
db_date between 20170710 and 20170716 
group by db,db_date 

,我想產生類似下面的Excel文件的報告:

enter image description here

+0

看一看這個答案 - https://stackoverflow.com/questions/41299024/create-an-excel-file-xlsx-using-p 1- SQL –

+0

也許限定在Excel這個查詢和Excel片打開時刷新數據。 –

+0

@WernfriedDomscheit我不明白什麼ü意味着什麼呢? – Andrew

回答

0

不知道你想要做什麼,但絕對可以做的第一件事就是要加入的2查詢:

聯盟所有的解決方案:

select db,db_date,count(distinct sales_id) "SALES", "IT" 
from Sales_Order 
where 
db='Test' 
and resource_id=2 and 
db_date between To_date('20170710','YYYYMMDD') and To_date('20170716','YYYYMMDD') 
group by db,db_date 

UNION ALL 

select db,db_date, "SALES", count(distinct it_id) "IT" 
from IT_INFO 

where 
db='Test' 
and resource_id=2 and 
db_date between To_date('20170710','YYYYMMDD') and To_date('20170716','YYYYMMDD') 
group by db,db_date 

select so.db,so.db_dat,count(distinct so.sales_id) "SALES", count(distinct t_i.it_id) "IT" 
from Sales_Order so 
left outer join IT_INFO it_i on so.resource_id = it_i.resource_id --if this is corresponding column 
where 
so.db='Test' 
and so.resource_id=2 and 
so.db_date between To_date('20170710','YYYYMMDD') and To_date('20170716','YYYYMMDD') 
group by so.db,so.db_date 

有直接出口數據從Oracle SQL Developer中脫穎而出的可能性:

可以使用RESOURCE_ID欄加入2個表

點擊鼠標右鍵>出口>下一步>完成

enter image description here

+0

這不是我正在尋找的答案。正如我所說我可以將結果複製到Excel中,但我需要自動化它。是的,我可以使用聯盟條件來加入表格 – Andrew