當前位置:首頁 » 編程語言 » sql復雜報表

sql復雜報表

發布時間: 2023-02-21 19:43:40

1. 現有MYsql資料庫,如果要製作復雜的EXCEL報表改怎麼辦

如果你會製作復雜的EXCEL報表,那剩下的問題就是怎樣把MYSQL資料庫的數據導到EXCEL里了,這一般需要編寫一個程序將把MYSQL資料庫的數據導到EXCEL里(要是這個程序不會寫那就上網搜搜看能不能搜到,或者再發一個問題問,或者請會的人寫)。
如果你把MYSQL資料庫的數據導到EXCEL里之後還是不會製作復雜的EXCEL報表,那你就要好好學學EXCEL報表的製作了。

2. sql server2008 如何做報表

簡單的報表gridview就行了,復雜的可以用Reporting
Service,
圖表比較多的可以用Microsoft
Chart
Controls
,也可以用開源的如zedgraph,但是相對MS的就差一些了。

3. 如何解決報表的 SQL 植入風險

SQL 注入或者 SQL 植入是 WEB 應用程序與資料庫交互過程中,由於對用戶輸入數據的合法性、規范性檢測做的不嚴而導致的一種常見的漏洞,這種漏洞如果被攻擊者加以利用,在查詢語句的結尾添加非法的 SQL 語句,就能進行非法的查詢,會導致數據泄露,風險很大

報表應用作為一個 WEB 應用,同樣會面臨這樣的風險

為了解決普通參數查詢不靈活,不自由的問題,很多報表工具開放了動態拼 SQL 的功能,允許 SQL 中進行子句替換,類似這樣:

SELECT … FROM T WHERE ${w}

w 就是可以根據用戶需求隨意拼的,比如 data>… AND date<=… AND area=…

這樣查詢就靈活多了,但是風險也就來了,這個 w 就會有 SQL 注入的隱患,比如:

SELECT … FROM T WHERE 1=0 UNION SELECT … FROM user

這是一句可執行的合法 SQL,但 user 表中的信息就被泄露了

怎麼樣解決這個問題呢?

1 盡量使用普通的 SQL 參數,不要動態拼 SQL
這樣做,雖然靈活度差一點,但安全
有些報表工具不支持普通 SQL 參數,只提供拼 SQL 的方案,方便是方便了,但就要小心了

2 需要通用查詢時,寫復雜一點的 SQL

比如:

SELECT … FROM T WHERE (${w})

SELECT … FROM T WHERE (${w}) OR ${w}

這樣做有一定的效果,但是並不完美,有些時候也防不住,而且 SQL 復雜後,會影響執行效率

3 再檢查關鍵字
通常通用查詢的條件不會有這些 select,from 等關鍵字,所以可以通過過濾這些關鍵字來防範風險,不讓參數中有這些關鍵字的 SQL 執行,雖然這樣做有時候會失去一些靈活性,但是安全性卻更高了

潤乾報表把這些都做好了,直接用就可以了

我們就以潤乾報表為例,來簡單看一下實現步驟

部署潤乾報表後,在應用目錄下找到 **raqsoftConfig.xml ** 文件,配置敏感詞列表

屬性名:disallowedParamWordList,value 為禁用敏感詞列表,多個之間用逗號分隔,英文字母不區分大小寫

配置列表以後,如果訪問的 URL 中再出現敏感詞,就會提示出錯了,減少風險的發生

http://localhost:6868/demo/reportJsp/showReport.jsp?rpx=a.rpx&arg2= 華北 union select * from users

是的就這么簡單,在一個已經提供了防止 SQL 注入的工具中,就是這么輕松一步設置就可以規避風險了,所以選型的時候,多問問,看看各廠商是否能解決這問題,怎麼解決的,否則就得自己去費勁去修補這個漏洞了

更詳細的操作以及其他解決方式請參考: 報表的 SQL 植入風險及規避方法 - 乾學院

4. 用SQL查詢報表

#我看了你的描述,也沒給出表與表之間的關系和欄位,以我的理解後,寫出以下sql語句,經過測試,可以執行成功
#FeeTable:生活費表包含(學生信息表)也就是外鍵
#Student:學生信息表包含(班級信息表)也就是外鍵
#Greade:班級信息表

select
s.nameas學生名稱,
g.nameas班級名稱,
s.genderas學生性別,
s.teacheras招生老師,
f.liveFeeDateas生活費日期,
f.liveFeeas生活費,
f.sleepFeeDateas住宿費日期,
f.sleepFeeas住宿費,
fareFeeDateas校車費日期,
fareFeeas校車費,
(f.liveFee+f.sleepFee+fareFee)as費用合計
.id=f.studentinnerjoinGreadegons.greade=g.id
groupbys.name,g.name,s.gender,s.teacher,f.liveFeeDate,f.liveFee,f.sleepFeeDate,f.sleepFee,fareFeeDate,fareFee
以上SQL語句要結合你的表結構來適當調整表名、欄位、和關聯。
希望能幫到你!

熱點內容
實況足球安卓如何改密碼 發布:2024-11-08 06:32:47 瀏覽:30
安卓微信不小心刪了如何找回聊天記錄 發布:2024-11-08 06:32:47 瀏覽:246
安卓手機應用怎麼設置到主屏幕 發布:2024-11-08 06:32:43 瀏覽:272
java核心源碼 發布:2024-11-08 06:27:49 瀏覽:394
壓縮降溫空氣 發布:2024-11-08 06:27:41 瀏覽:202
如何將vue頁面部署到伺服器 發布:2024-11-08 06:26:12 瀏覽:292
今日頭條里的音頻怎麼緩存 發布:2024-11-08 06:25:18 瀏覽:47
黑群暉存儲空間只讀 發布:2024-11-08 06:05:59 瀏覽:579
為什麼微信安卓發不出長視頻 發布:2024-11-08 06:03:35 瀏覽:267
top命令linux 發布:2024-11-08 06:00:41 瀏覽:57