㈠ sql語句中交叉報表的使用
DECLARE@sNVARCHAR(4000)
SELECT@s=ISNULL(@s+',','')+QUOTENAME(標志)
FROM表
---行列轉換
DECLARE@SQLNVARCHAR(4000)
SELECT@SQL='
SELECT*
FROM表(帶有轉換標志)PIVOT(SUM(實際需要欄位)
for[標志]in('+@s+')
)A'
EXEC(@SQL)
㈡ 怎麼使用Excel提取sql server資料庫數據,自動生成報表求大神解答,萬分感謝。
你可以先設計一個視圖View 就是你報表需要的額數據 然後導出數據到excel
㈢ sql動態列 問題 請教一下高手,怎麼把表一,用sql語句做出第二種動態列的報表呢
你這個是交叉表,不要想著用動態列來實現.
動態列是增加列,不會改變記錄數.
交叉表會增列,同時減少記錄數.
㈣ sqlserver 統計報表的 sql語句怎麼寫
--動態語句
declare@sqlvarchar(8000)
select@sql=isnull(@sql+'],[','')+NAMEfromT_CSDN_ONEgroupbyNAME
set@sql='['+@sql+']'
EXEC('select*from(select*fromT_CSDN_ONE)apivot(SUM(ISNULL(MONERY,0)forNAMEin('+@sql+'))b')
㈤ 如何在水晶報表中實現SQL 查詢
給你一個例子 基本可以傳遞參數 到水晶報表 可以查詢 並且可以將參數欄位顯示為你需要的值
以前採用vb6做的動態傳遞水晶報表參數欄位,存在一個缺陷就是在設計水晶報表的時候沒有按照注釋的那裡寫的(直接拖參數欄位到預覽的界面)就不會出現水晶報表提示要輸入離散值的消息框。其實也不完全是這樣的,有時我按照這種方式操作仍然有這個輸入離散值消息框的提示,具體是什麼原因造成的還不是很清楚,估計開發水晶報表的明白內部機制的原因,我只想能順暢的使用就可以了,可出現不相關的輸入提示就直接影響到客戶使用程序。
我在做DotNet2005時用的是水晶報表10,在傳遞參數後。有加入了設置顯示報表控制項的參數對象集合為傳遞的參數值【CRViewer91.ParameterFieldInfo = m_Report.ParameterFields 】運行程序就沒有這個輸入離散值的提示。vb6使用水晶報表9.0不知道加入這個設置是否能解決問題。暫時我還沒有條件測試主要是計算機上沒有安裝水晶報表9,不過也是一種解決這個問題的辦法。先在這里保存起來,待有條件了測試下,沒有這條語句可能在設計報表rpt文件的時候和程序動態調用可就要來回的測試了 。 哈~~~~~~
Private Sub DisplayReport1()
'' ==========================================================
' 開發人員:段利慶
' 編寫時間:2008-09-01
' 過程名稱:DisplayReport
' 參數說明:
' 功能說明:動態載入水晶報表文件(*.rpt)顯示列印預覽
'
' 其他說明:程序採用的是Crystal Reports 9.1版本
' 工程引用:Crystal Reports 9 ActiveX Designer Design and Runtime Library
' 控制項:CRViewer91
'
'
'' ==========================================================
'*中央錯誤處理
On Error GoTo PROC_ERR
Dim m_Application As New CRAXDDRT.Application
Dim m_Report As CRAXDDRT.Report
Dim strSQL As String
strSQL = "SELECT * FROM 視圖_收費_計量儀表 "
Dim strRptPath As String
strRptPath = App.Path & "\Crystal_RPT_Para\Sell_Meter.rpt"
Debug.Print "strRptPath:" & strRptPath
Set m_Report = Nothing
Set m_Report = m_Application.OpenReport(strRptPath, 1)
'*防止彈出水晶報表資料庫登錄對話框
m_Report.Database.Tables.Item(1).TestConnectivity
m_Report.Database.Tables.Item(1).ConnectBufferString = objdata.ConnectionString
m_Report.SQLQueryString = strSQL
'****************************************************
'*參數欄位傳遞參數
'*
'*搞了2天了終於找到原因了 08-09-03
'*1.在新建一個參數欄位,一定要直接拖放到預覽裡面
'* 否則拖到設計裡面就要彈出輸入離散值的消息框
'*
'*2.GetItemByName("MyParaT") 參數是參數欄位的名稱
'*
m_Report.DiscardSavedData
m_Report.ParameterFields.GetItemByName("MyParaT").ClearCurrentValueAndRange
m_Report.ParameterFields.GetItemByName("MyParaT").AddCurrentValue (Text1.Text)
m_Report.ParameterFields.GetItemByName("k1").ClearCurrentValueAndRange
m_Report.ParameterFields.GetItemByName("k1").AddCurrentValue (Text1.Text)
m_Report.ParameterFields.GetItemByName("k2").ClearCurrentValueAndRange
m_Report.ParameterFields.GetItemByName("k2").AddCurrentValue (Text1.Text)
'*-----------------------------------------------------
'* 以下這句是否能徹底解決彈出離散值輸入框問題
'*是根據vb2005 Crystal Report10 順暢的處理結果得出的
'*2009-08-26
'CRViewer91.ParameterFieldInfo = m_Report.ParameterFields
'*傳遞的對象 用下面的語句
'*Set CRViewer91.ParameterFieldInfo = m_Report.ParameterFields
'*-----------------------------------------------------
'****************************************************
CRViewer91.DisplayGroupTree = False
CRViewer91.ReportSource = m_Report
CRViewer91.Zoom 1
CRViewer91.ViewReport
'*結束子程序
PROC_EXIT:
Exit Sub
'*錯誤處理,顯示出錯信息
PROC_ERR:
MsgBox " ErrNumber: " & Err.Number & vbCrLf & _
"ErrDescription: " & Err.Description & vbCrLf & _
" Mole: " & Me.Caption & vbCrLf & _
" Procere: " & "DisplayReport"
GoTo PROC_EXIT
End Sub
㈥ 求SQL動態表格刪除語句
你應該點擊刪除按鈕後,記錄要刪除的記錄的JobfairID、ComId或者JobID中能夠唯一確定要刪除記錄的那個Id,譬如JobId,然後在存儲過程中增加諸如:
delete from JOBFAIR_ORDER_INFO where JobId = @JobId
即可。
㈦ sql的數據在html控制項的表格顯示!!
你是指在sql查詢的時候動態生成表格,還是只是將查好的datatable中的數據傳到前台變成表格呢,
如果是用sql動態生成表格,建議用存儲過程寫:設置一個@Content變數。例:if(@Mdpcount>0)
begin
set @EmailContent='<Table border=1><tr><td>序號</td><td>配件編號</td><td>配件名稱</td><td>規格</td><td>庫存數量</td><td>安全庫存</td><td>供應商</td></tr>'
end
while(@Mdpcount>0)
begin
select @num=@num+1,@EmailContent=@EmailContent+'<tr><td>'+cast( @num as varchar(10))+'</td><td>'+ isnull(Mdp_sn,'') +'</td><td>' + isnull(Mdp_name,'') +'</td><td>'+ isnull(Mdp_spec,'') +'</td><td>'+isnull(cast(Mdp_stock as varchar(20)),'')+'</td><td>' + isnull(cast(Mdp_SafetyStock as varchar(20)),'')+ '</td><td>' +isnull(Mdp_traderName,'') + '</td></tr>'
from #tempMdpInfor where autoID=@Mdpcount
set @Mdpcount=@Mdpcount-1
end
if(@Mdpcount=0 )
begin
if(@Indexcount=0)
begin
set @EmailContent=@EmailContent+'</Table>'
end
如果是查好的數據,直接在後台畫表格,放到隱藏控制項里,前台js獲取就行了
㈧ 如何用FastReport製作動態報表
沒有用fastreport做過,倒是用finereport做過動態表,同為java報表軟體,原理上應該是差不多的吧。
在定義數據集時,通過if函數來判斷參數的值從而來實現調用不同的數據表,如直接將SQL語言定義成:SELECT * FROM ${if(aa=1,'訂單','訂單1')},即若參數aa=1時,查詢的是訂單表,若aa!=1時,查詢的是訂單1表。
1、打開模板
2、修改數據集
將數據集修改為SELECT * FROM 訂單 ${Condition}
3、修改參數界面
將參數界面的控制項名稱修改為condition即可
4、效果查看
保存模板點擊分頁預覽,輸入動態的查詢條件如:where 貨主地區='西南',便可以獲取貨主地區為西南的數據了,效果如下圖:
㈨ 怎麼樣把sql查詢的信息生成報表
SELECT YEAR(日期欄位) 年度,SUM(CASE WHEN MONTH(日期欄位) =1 THEN 統計的欄位 ELSE 0 END) 一月,
SUM(CASE WHEN MONTH(日期欄位) =2 THEN 統計的欄位 ELSE 0 END) 二月,
SUM(CASE WHEN MONTH(日期欄位) =3 THEN 統計的欄位 ELSE 0 END) 三月,
SUM(CASE WHEN MONTH(日期欄位) =4 THEN 統計的欄位 ELSE 0 END) 四月,
SUM(CASE WHEN MONTH(日期欄位) =5 THEN 統計的欄位 ELSE 0 END) 五月,
SUM(CASE WHEN MONTH(日期欄位) =6 THEN 統計的欄位 ELSE 0 END) 六月,
SUM(CASE WHEN MONTH(日期欄位) =7 THEN 統計的欄位 ELSE 0 END) 七月,
SUM(CASE WHEN MONTH(日期欄位) =8 THEN 統計的欄位 ELSE 0 END) 八月,
SUM(CASE WHEN MONTH(日期欄位) =9 THEN 統計的欄位 ELSE 0 END) 九月,
SUM(CASE WHEN MONTH(日期欄位) =10 THEN 統計的欄位 ELSE 0 END) 十月,
SUM(CASE WHEN MONTH(日期欄位) =11 THEN 統計的欄位 ELSE 0 END) 十一月,
SUM(CASE WHEN MONTH(日期欄位) =12 THEN 統計的欄位 ELSE 0 END) 十二月,
FROM 表
GROUP BY YEAR(日期欄位)
㈩ mysql怎樣設置用sql語句查詢出的報表定時自動導出
mysql -h主機IP -u用戶名 -p密碼 -e "SQL語句" 庫的名字 > 文件存放路徑/文件名.xls
例如:mysql -h192.168.1.1 -uroot -p123456 -e "select * from e_iclass_areas" test > /root/test/test.xls
上面是語句,然後把上面的語句寫成一個腳本,給一個可執行許可權,然後在通過crontab做一個定時任務即可
腳本內容:
#!/bin/bash
mysql -h192.168.1.1 -uroot -p123456 -e "select * from e_iclass_areas" test > /root/test/test.xls
假設腳本名稱是test.sh,所在路徑是/root/test/test.sh,則給其授權
chmod +x /root/test/test.sh
然後做定時任務,定時執行此腳本,比如每天晚上2點執行:
crontab
0 2 0 0 0 /root/test/test.sh