我的公司從無法以任何直接格式提供數據的客戶端接收數據,因此我們必須導入多個報告,這些報告採用如下所示的分組佈局。我們必須開發內部方法來取消分組報告,然後導入數據以獲取我們需要的所有數據。目前,我的團隊中的成員正在使用MS Access/VBA生成所需的詳細記錄,但我想將其移至基於服務器的自動化過程。我們正在使用SQL Server 2008R2進行存儲,並且我想使用SSIS來完成任務。有誰知道我可以生成詳細記錄並將數據直接導入SQL Server的方式嗎?將分組報告數據導入數據庫
0
A
回答
1
嗯 - 嗯,你一定要做數據設置爲組日期添加到詳細信息行的一些計劃調整。我不確定你將如何導入xlsx,但我會建議首先使用SSIS包,然後在腳本任務中進行調整,作爲完成此操作的「最佳」方法。有關如何在SSIS腳本任務中處理Excel,請參見here。
如果你不知道SSIS或者特別是編程,那麼你最好下注(我認爲)只是將數據導入臨時表,使用T-SQL進行操作,然後插入該表進入你的主表。我做了這個here的SQL小提琴。
CREATE TABLE ActivitySummary
(
id int identity(1,1),
activity_date date,
activity varchar(100),
paid_time decimal(5,2),
unpaid_time decimal(5,2),
total_time decimal(5,2)
)
CREATE TABLE ActivitySummary_STG
(
id int identity(1,1),
activity_date date,
activity varchar(100),
paid_time decimal(5,2),
unpaid_time decimal(5,2),
total_time decimal(5,2)
)
GO
-- Simulate import of Excel sheet into staging table
truncate table ActivitySummary_STG;
GO
INSERT INTO ActivitySummary_STG (activity_date, activity, paid_time, unpaid_time, total_time)
select '8/14/17',null,null,null,null
UNION ALL
select null,'001 Lunch',0,4.4,4.4
UNION ALL
select null,'002 Break',4.2,0,4.2
UNION ALL
select null,'007 System Down',7.45,0,7.45
UNION ALL
select null,'019 End of Work Day',0.02,0,0.02
UNION ALL
select '8/15/17',null,null,null,null
UNION ALL
select null,'001 Lunch',0,4.45,4.45
UNION ALL
select null,'002 Break',6.53,0,6.53
UNION ALL
select null,'007 System Down',0.51,0,0.51
UNION ALL
select null,'019 End of Work Day',0.02,0,0.02
GO
-- Code to massage data
declare @table_count int = (select COALESCE(count(id),0) from ActivitySummary_STG);
declare @counter int = 1;
declare @activity_date date,
@current_date date;
WHILE (@table_count > 0 AND @counter <= @table_count)
BEGIN
select @activity_date = activity_date
from ActivitySummary_STG
where id = @counter;
if (@activity_date is not null)
BEGIN
set @current_date = @activity_date;
delete from ActivitySummary_STG
where id = @counter;
END
else
BEGIN
update ActivitySummary_STG SET
activity_date = @current_date
where id = @counter;
END
set @counter += 1;
END
INSERT INTO ActivitySummary (activity_date, activity, paid_time, unpaid_time, total_time)
select activity_date, activity, paid_time, unpaid_time, total_time
from ActivitySummary_STG;
truncate table ActivitySummary_STG;
GO
select * from ActivitySummary;
1
我會做一個腳本組件。
總數據流:
ExcelSource - >腳本組件(穿越 - ) - >條件拆分 - > SQL目的地
在腳本組件:在InputColumns
檢查AccountSummary的
將ActivityDate添加爲輸出列。
打開腳本:
你行處理之外。
地址:
public datetime dte;
內排處理:
if (DateTime.TryParse(Row.ActivitySummary.ToString()))
{dte=DateTime.Parse(Row.ActivitySummary.ToString());}
else
{Row.ActivityDate = dte;}
然後添加一個條件性拆分刪除空活動日期
相關問題
- 1. 將數據導入報告ssrs
- 2. 將數組導入數據庫字段
- 3. 將數組導入數據庫
- 4. 數據刷新到報告數據庫
- 5. 數據庫設計 - 報告
- 6. 數據庫(OLTP)和報告
- 7. NoSQL數據庫和報告
- 8. 報告數據庫同步
- 9. 將報告保存到數據庫
- 10. 將數據從數據庫導入GemFire
- 11. 將數據從Excel導入數據庫
- 12. 將數據庫數據導入Joomla
- 13. 將ascii數據導入cassandra數據庫
- 14. 組織數據報告(rdlc)
- 15. 嵌入數據報告
- 16. 將img導入數據庫
- 17. 將csv導入數據庫
- 18. 將數據庫導入magento
- 19. 如何將數據從eXist數據庫導入PostgreSQL數據庫?
- 20. 從sapr3導入csv到sql數據庫用於報告目的
- 21. 將JRBeancollection數據庫傳遞給主報告和子報告
- 22. 報告服務將報告連接到多個數據庫
- 23. 將數據傳輸到報告數據庫
- 24. ANDROID - 將數據插入數據庫,報告無法啓動活動ComponentInfo:java.lang.NullPointerException
- 25. 查詢SQL Server報告服務數據庫,ReportServer.Catalog表來分析報告參數
- 26. 導入數據庫
- 27. 導入數據庫
- 28. 將數據插入水晶報告中的特定部分VS2010
- 29. 將SQL列數據導入數組
- 30. 如何將數據數組導入Simulink
我不明白的問題。你問如何取消在SQL Server中的數據分組?如何使用SSIS將MS Access導入到SQL中?如何將原始報告導入SQL Server?請澄清。 –
我更新了一下這個問題。我正在尋找一種方法來編程生成詳細記錄並將它們導入SQL服務器。我想完全消除MS Access組件。 –
這很難做,除非您可以提供數據樣本,因爲它是分組的,然後是未分組數據的樣本。即使這樣,除非我們有數據如何分組的方法,否則很難做到,但如果我們需要這些數據,直到我們看到數據時纔會說出來。我不確定你附加的圖像代表了什麼。數據是否也以csv格式發佈給您?你能提供這些細節嗎?謝謝 –