當前位置:首頁 » 編程語言 » sql報表製作

sql報表製作

發布時間: 2023-11-30 08:16:00

Ⅰ 怎麼查詢sql資料庫的歷史數據,並調用出來做報表

  1. SQL關鍵字 where,類型轉換Convert

  2. 歷史數據,多久後的數據,假如有表A,有2個欄位a,b

  3. a 為int 類型,b 為日期類型

  4. 轉換日期以及日期范圍SQL 如下:

  5. select * from A where b between convert(datetime,'2015-08-01 08:08:08' ) and convert(datetime,'2015-08-01 08:12:08')

  6. 以上SQL 就是查詢歷史記錄,日期為'2015-08-01 08:08:08'與 '2015-08-01 08:12:08'

    之間的數據

  7. 創建報表可以通過MicrosoftSQLServer2008R2中的創建,也可以在Microsoftvisualstudio中通過使用ReportView控制項來創建報表。本實例採用MicrosoftSQLServer2008R2中的創建報表。

  8. 創建報表伺服器項目

  9. 在製作報表之前,要先創建一個報表伺服器項目,在其中可以存放若干報表供用戶調用。在中創建報表伺服器項目的操作步驟如下。

  10. 選擇【開始】|【所有程序】|【MicrosoftSQLServer2008R2】|【】,啟動商業智能開發環境。在菜單欄中選擇【文件】|【新建】|【項目】命令,彈出【新建項目】對話框。在【項目類型】列表中選擇【商業智能項目】選項,在【模板】列表中選擇【報表伺服器項目向導】選項,在【名稱】文本框中輸入【報表項目4】,單擊【確定】按鈕以創建項目。

Ⅱ 怎樣在SQLServer中正確使用參數報表

一、帶報表參數的典型應用。
在一個報表中加入參數,最直接的結果就是可以提高查詢語句的重復利用性。如用戶可以通過更改參數來調整顯示的結果等等。對於這些常規的應用筆者不做過多的闡述。筆者現在要說的是,帶參數報表的一些高級應用。
參數報表比較高級的應用就是實現報表鑽取。鑽取是改變維的層次,變換分析的粒度。它包括向上鑽取和向下鑽取。向上鑽取是在某一維上將低層次的細節數據概括到高層次的匯總數據,或者減少維數;向下鑽取是指自動生成匯總行的分析方法。簡單的說,現在資料庫中有一張銷售訂單表。根據這張表可以生成一張各個月份的銷售統計表。但是,有可能用戶在查看這張報表的時候,對某個月份的統計結果有懷疑,為此需要查看這個月份的銷售明細。此時如果利用帶參數的報表實現鑽取功能的話,那麼就不需要重新查詢或者生成報表。而只需要直接在這張報表上點擊月份,系統就會自動打開另外一張報表。這張報表中的內容就是這月份的銷售明細。從技術的角度講,就是通過參數的傳遞,將這張報表的時間信息作為另一張報表的查詢參數。從而讓系統自動根據這個參數來生成相應的數據,從而簡化用戶的操作。
二、帶參數報表要避免注入式攻擊。
在使用參數報表的時候,特別需要注意一點就是防止注入式攻擊。注入式攻擊各位讀者或許都了解。可是對於為什麼使用參數的報表容易引起注入式攻擊,可能大家並不怎麼了解。這主要是因為參數如果採用的是string數據類型所造成的。即如果參數採用的是string數據類型,那麼就表示用戶可以根據需要輸入任何類型的字元串。此時如果用戶輸入了一些注入式攻擊的代碼當作參數,則就可能會導致注入式攻擊。為此如果生成報表時,採用的參數時String數據類型的,就需要特別的注意。為了防止這個注入式攻擊,筆者建議如果採用的參數一定要是String數據類型的話,那麼最好能夠遵循下面的規則。DB2資料庫與SQLServer資料庫的異同
首先,在客戶端將報表查詢語句傳遞給資料庫之前,即將參數復制給Select語句之前,最好進行驗證。即要驗證輸入的參數值中,是否存在一些特殊的符號。這些符號往往跟輸入攻擊有關。如果存在這些特殊字元的話,則需要向用戶提供警告信息,表明存在注入式攻擊的可能性。並且,系統可以拒絕接受這個參數。這個避免注入式攻擊的方法比較消極。如果這些特殊符號確實是查詢參數中包含的內容,那麼也無法使用。
其次,可以通過值列表的方式來向資料庫傳遞參數。在沒有提供值列表的情況下,如果參數是字元類型的,則系統向用戶顯示的是一個可以使用任何值的文本框。此時資料庫管理員可以使用可用值列表的方式來規范化參數的輸入,限制其輸入一些特殊的字元。也就是說,在定義String類型的參數報表時,讓系統向用戶顯示一個下拉的列表框,然後用戶通過選擇來指定參數。這個操作就跟Excel表格中的下拉列框差不多,用戶只能夠選擇資料庫管理員所提供的值,或者說只能夠選擇某張表中存在的值。由於用戶不能夠自己輸入值,而只能夠選擇,這就可以有效的避免注入式攻擊。不過採用這種方式有一個缺陷,就是如果有效的值太多的話,這個列表就會很長。為此用戶在選擇參數的時候,就會很麻煩。如當有效值有500個的話,那麼就需要在500個值中選擇一個值,顯然這有點困難。即使按照參數的名字順序來排列,選擇也是比較麻煩的。大內存SQLServer資料庫的加速劑
第三,可以利用列表查詢的方式,來避免注入式攻擊。即當用戶輸入一個參數之後,系統會自動從一個列表中查詢是否存在這個值。如果存在的話,則將這個參數賦值給查詢語句中的變數。如果不存在的話則提醒用戶參數可能輸入錯誤。如現在有一張銷售訂單明細報表。用戶可能需要根據訂單號碼來查詢銷售訂單明細。此時這個訂單號碼就是一個字元型的參數。當用戶輸入這個參數的時候,並不是馬上傳遞給資料庫,這么做太危險,容易產生注入式攻擊。而是前台應用程序也從後台資料庫中取得所有的銷售訂單的訂單號碼信息。當用戶輸入參數之後,前台應用程序會把這個用戶輸入的參數跟自己查詢出來的信息先進行對比。如果有匹配的信息,就將這個參數傳遞給後台資料庫。如果沒有的話,就向用戶報告錯誤的信息。有些應用程序在設計的時候,還會更進一步。如客戶端程序會先從資料庫中取得訂單號碼與對應的訂單ID。當用戶輸入參數之後,會進行比對。如果比對成功的話,那麼客戶端應用程序會將這個訂單號碼對應的訂單ID作為參數傳遞給查詢語句。也就是說,從資料庫伺服器角度來講,真正的參數是訂單ID(整數型數據類型)而不是訂單號碼(字元串數據類型)。通過這個數據類型轉換,從而可以從根本上防止注入式的攻擊。
以上三種方式都可以很有效的避免注入式攻擊。資料庫管理員需要根據實際應用來選擇合適的解決方案。如當有效值比較少的時候,如按年份來統計銷售訂單時,則可以使用列表的形式。當有效值比較多,特別是這個有效值會自動增長的時候,則可以使用列表查詢的方式。總之一個基本的原則,對於String參數,一定要進行驗證其合法性。否則的話,很容易造成注入式攻擊。
三、對於日期型的數據給與特殊的照顧。
日期型的數據是資料庫中最容易出現問題的一個數據類型。因為不同語言環境下,如英語與漢語環境下,其採用的日期格式是不同的。如果資料庫中定義了某個日期格式,而輸入的參數如果不符合這個格式的話,則系統就會認為這條記錄不存在,從而在報表中查詢不到相關的數據。為此如果在報表中要使用日期型數據參數的話,將會是一件比較麻煩的事情。所以,在應用程序設計時,資料庫管理員最好提醒前台應用程序的設計者,能夠規范化日期的格式。如可以要求他們,對於日期型的數據作為參數時,用戶不能夠手工輸入日期。因為不同的用戶輸入習慣不同,如有些人會按年月日的格式輸入(有些用戶會把8月份寫成08,而有些直接寫成8),有些人則會按月、日、年的格式進行輸入。由於格式不統一,那麼資料庫就很難按照同一個規則進行轉換。為此,對於日期型的數據作為參數時,最好在前台應用程序中能夠規范化輸入的格式。如以一個統計的格式輸入。要做到這一點的話,就可以通過一個日期型的控制項來完成。即用戶不能夠手工輸入日期型的數據。當遇到某個參數時日期型的數據時,當滑鼠定位到這個文本框,則系統就會彈出一個類似日歷的界面。用戶只有通過選擇日期來輸入日期型的數據,從而規范化用戶的輸入。另外也可以通過掩碼的方式來規范用戶輸入的格式。即預先規定年月日的輸入掩碼。用戶在輸入的時候必須按照這個格式,否則的話,系統不會接受用戶的輸入。這兩種方式都可以實現對日期數據的規范化。
當用戶按照同一個格式輸入日期數據後,以後的工作就容易處理了。在將參數傳遞給資料庫的時候,可以在查詢語句中加入一個日期型數據的強制轉換語句。將輸入的日期型數據按照系統表中定義的日期型數據進行轉換。即如果前台客戶端輸入的日期型數據格式是日、月、年(只要輸入的內容統一即可,沒有具體的要求),然後在查詢語句中就可以通過數據類型轉換工具對數據類型進行轉換。如將日、月、年表示的字元型數據類型表示會年、月、日的日期型數據類型。如此的話,就可以保證用戶輸入的參數是資料庫可以識別的。就可以避免因為日期格式不一致或者數據類型不一致而導致報表不能夠抓取記錄。

Ⅲ 復雜數據報表的sql 編寫求助

本人也是做這行的,有11年了,就你的問題只想跟你說:
1、SQL語句其它沒什麼難度,首先了解左連接,右連接,全連接這三個方面的內容。
2、復雜SQL也是基於簡單SQL的基礎上,是一種簡單SQL的靈活應用已。
3、有前輩帶領的環境下,最好向前輩門多多提問,不用看書,看一天書,不如前輩一分鍾的指導
4、業務部門有報表需求時,你要求接個簡單的,或從前輩那接過來,親自完成,但代碼一定要親自寫,不懂問前輩,這比什麼進步都快。
5、我帶過很多的徒弟,一般這么要求他們,進步也很快,保證3次之後可獨立完成。

Ⅳ 報表開發就是寫sql嗎

SQL是報表開發的一部分。報表是把數據進行可視化,你需要設計報表的樣式,包括數據展現、整體布局、圖表配色等等。
報表其實就相當於做產品,我們目的是要讓用戶(業務、領導)滿意,願意看,願意用。
同時,做好報表一定要懂業務,業務知識的掌握往往就成為了報表人能力的分水嶺。
做報表是需要動腦的,SQL只是需要掌握最基礎的。

Ⅳ 怎樣建立資料庫表格

如何在excel中創建「資料庫」
excel是一個自由表,一個EXCEL的工作薄就是一個資料庫,它裡面的每一張表就是資料庫的表,你可象操作表一樣對其進行查詢等操作,它裡面的列就是資料庫的欄位,行就是記錄,因此你可以按資料庫的架構來組建數據,只是你如果你組建的數據不符合資料庫的規則,在查詢時不能得到時相應的結果。因此在EXCEL中不存在創建資料庫。但對存在的數據可以引用。當滿足條件A、B、C、D……時引用是可以的,但如果是在EXCEL中直接引用是不行的,一種是用VBA利用ADO訪問EXCEL,在查詢時把A、B、C、D幾個條件按SQL語法寫進查詢語句中,引用返回的記錄集,一種是利用函數把滿足A、B、C、D的記錄篩選出來,然後再引用。
怎麼在SQL資料庫中新建表。
可以有兩種辦法啦:

1.在企業管理器裡面建:這種方法很簡單點擊選中的資料庫右鍵新建即可相信你應該會不多說了。

2.在查詢分析器里建:基本思路要建表,表是要在庫里建的所以你要先引用你要使用的資料庫加進來再開始建表,以下為一陪扮個簡單實例;

create database student --創建一個student資料庫由於這里主要說建表所以建一個簡單的資料庫

use student --引用資料庫student

create table Test( --創建一個Test表

name varchar(20) primary key indentity(1,1),--列名(欄位名) 數據類型 在此加主鍵約束就不用加非空約束 再加上自動增長列(含義從1開始增長增長量是1)

password varchar(10) not null --注意建表最後一個欄位名時結尾不要加逗號否則會出錯

)
sqlserver 下怎麼建立資料庫 怎麼建表
方法/步驟

1

首先我們打開SQL SERVER自帶的資料庫管理工具,從開始菜單中可以找到,如圖點擊進去;

2

開始連接SQL SERVER伺服器,就是我們裝好的SQL SERVER 伺服器;

3

右擊資料庫悉仿,選擇第一個,新建一個資料庫;

4

填寫資料庫的名稱,下面是設置自動增長的,一般不用管,默認

5

點擊確定後就可以生成一個資料庫,此時裡面是沒有表的;

6

右擊表新建一個表,填寫你要的欄位名稱

7

填完欄位名稱後點擊欄位名稱那個內部窗口的小叉叉,然後就睜亂纖提示你輸入表名了,填寫下表名,一個資料庫的建立過程就是這樣的;

或者

create database stuDB

on primary -- 默認就屬於primary文件組,可省略

(

/*--數據文件的具體描述--*/

name='stuDB_data', -- 主數據文件的邏輯名稱

filename='D:\stuDB_data.mdf', -- 主數據文件的物理名稱

size=5mb, --主數據文件的初始大小

maxsize=100mb, -- 主數據文件增長的最大值

filegrowth=15%--主數據文件的增長率

)

log on

(

/*--日誌文件的具體描述,各參數含義同上--*/

name='stuDB_log',

filename='D:\stuDB_log.ldf',

size=2mb,

filegrowth=1mb

)
怎樣建立一個簡單資料庫?
把excel導入資料庫,不出現表格嵌套可以使用下面這個方法導入;

思路:

(1)、把excel數據讀入到dataset中;

(2)、建立相應結構的數據表格

(3)、把dat暢set中的數據更新到數據表中
如何在資料庫中建立表
Create table 表名字

(表欄名1 數據類型,

表欄名2 數據類型,

表欄名3 數據類型,

表欄名4 數據類型);

例如:

Create table 上課表

(學生 Varchar(10),

學號 Number(10));
如何建立一個新的ACCESS表格
新建一個資料庫有兩種方法:一種是創建一個空資料庫,即建立一個沒有表、查詢、窗體和報表等內容的資料庫;另一種方法是使用Access中提供的資料庫模板創建資料庫,即通過對向導所提出的選項和不同選擇來設計窗體、查詢和報表等,從而建立一個完整的資料庫。這里我們將使用第一種方法:

Step1:在Access窗口中單擊 「文件(F)」菜單,在下拉菜單中選擇 「新建」項,將得到對話框。

「新建」對話框

雙擊 「資料庫」 圖標,即會顯示 「文件新建資料庫」 對話框,

Step3:在文件名文本框中輸入要保存資料庫的文件夾及新建的資料庫名,如 「C:\test」,然後選擇 「確定」。即可創建好一個名為 「test」 的資料庫。

二.添加數據表

表是Access資料庫的基礎,是信息的載體。其它對象如查詢、窗體和報表,也是將表中的信息以各種形式表現出來,方便用戶使用這些信息。在Access中,創建表的方法有三種:一是使用設計器創建表;二是通過輸入數據創建表;三是利用向導創建表。在這里,我們採用第一種方法創建表:

Step4:在窗體中,雙擊 「使用設計器創建表」,則會出現對話框。

表設計器對話框

Step5:在「欄位名稱」列的第一行中輸入authors表的第一個欄位的名字 id。然後按回車鍵,此時在「數據類型」列中會顯示出一個按鈕,單擊按鈕,在彈出的下拉列表中選擇「文本」選項,設置 id 欄位的類型為文本型。

設置欄位數據類型

Step6:在「欄位屬性飢域的「常規」選項卡中,可以設置欄位的大小、格式和規則等。如我們可以把id欄位的長度大小設置為12,並且規定其不能為空,因此,可以設置如下:在 「欄位大小」文本框中輸入12,在 「必填欄位」文本框中輸入「是」,在「允許空字元串」文本框中輸入「否」。

設置欄位屬性內容

Step7:重復上述方法,添加其它欄位,並設置其屬性。

Step8:設置完成後,單擊 「文件(F)」菜單,在下拉菜單中選擇 「保存」項,將會出現一個如圖1.8的對話框,在「表名稱」文本框中輸入表名 authors,單擊確定按鈕。

「保存」對話框

Step9:此時,系統會提示用戶建立一關鍵欄位。一般情況下單擊「是」完成即可。
如何用mysql創建創建博客資料庫表
1.創建一個資料庫為test_db

mysql> create database test_db;

Query OK, 1 row affected (0.00 sec)

切換到test_db上

mysql> use test_db;

Database changed

mysql>

2.創建一個表tb_emp1

create table tb_emp1

(

id INT(11),

name VARCHAR(25),

deptid INT (11),

salary FLOAT

);

mysql> create table tb_emp1

-> (

-> id INT(11),

-> name VARCHAR(25),

-> deptid INT (11),

-> salary FLOAT

-> );

Query OK, 0 rows affected (0.09 sec)
MYsql資料庫怎樣創建表? 20分
CREATE DATABASE cookbook; 創建一個叫「cookbook」的資料庫

USE cookbook; 使用cookbook這個資料庫

CREATE TABLE limbs (thing VARCHAR(撫0),legs INT,arms INT); 創建表「limbs」其中包括thing,legs,aems 欄位

創建表的命令是 CREATE TABLE 表名稱

後面括弧里的內容是表中欄位的屬性
如何 SQL創建表
商品表

create table proct

(

proid varchar(20) primary key,

proname varchar(50),

proprice money,

procount int

);

顧客表

create table customer

(

custno varchar(20) primary key,

custname varchar(50),

custsex varchar(10),

custage int,

custtel varchar(20)

);

訂單表

create table orderitem

(

custno varchar(20),

proid varchar(20),

ocount int,

oprice money,

odate date

);

外鍵

alter table orderitem add constraint fk_custno foreign key(custno) references customer(custno);

alter table orderitem add constraint fk_proid foreign key(proid) references proct(proid);
SQL資料庫怎麼創建表.
CREATE TABLE [dbo].[student]( [學號] [CHAR](8) NOT NULL, [姓名] [CHAR](8) NULL, [性別] [CHAR](2) NULL, [年齡] [INT] NULL, [聯系方式] [CHAR](11) NULL, [所在院系] [CHAR](20) NULL, CONSTRAINT [PK_student] PRIMARY KEY CLUSTERED ( [學號] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NOREPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[student] WITH CHECK ADD CONSTRAINT [CK_student] CHECK (([性別]='女' OR [性別]='男'))GOALTER TABLE [dbo].[student] CHECK CONSTRAINT [CK_student]GOALTER TABLE [dbo].[student] WITH CHECK ADD CONSTRAINT [CK_student_1] CHECK (([聯系方式] LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))GOALTER TABLE [dbo].[student] CHECK CONSTRAINT [CK_student_1]GOALTER TABLE [dbo].[student] ADD CONSTRAINT [DF_student_所在院系] DEFAULT ('電信系') FOR [所在院系]GO

Ⅵ 哪種報表工具,可以很簡便的從SQL資料庫中提取數據,生成想要的報表

有以下幾種報表工具都可以實現:

1、 思邁特軟體Smartbi的大數據分析軟體:

「思邁特軟體Smartbi」是企業級商業智能和大數據分析品牌,經過多年持續自主研發,凝聚大量商業智能最佳實踐經驗,整合了各行業的數據分析和決策支持的功能需求。滿足最終用戶在企業級報表、數據可視化分析、自助探索分析、數據挖掘建模、AI智能分析等大數據分析需求。

2、MySQL Workbench:

MySQL Workbench是一款專為MySQL設計的ER/資料庫建模工具。它是著名的資料庫設計工具DBDesigner4的繼任者。你可以用MySQL Workbench設計和創建新的資料庫圖示,建立資料庫文檔,以及進行復雜的MySQL 遷移,MySQL Workbench是下一代的可視化資料庫設計、管理的工具,它同時有開源和商業化的兩個版本。

3、資料庫管理工具 Navicat Lite:

NavicatTM是一套快速、可靠並價格相宜的資料庫管理工具,大可使用來簡化資料庫的管理及降低系統管理成本。它的設計符合資料庫管理員、開發人員及中小企業的需求。 Navicat是以直覺化的使用者圖形介面所而建的,讓你可以以安全且簡單的方式建立、組織、存取並共用資訊。

報表工具靠不靠譜,來試試Smartbi,思邁特軟體Smartbi經過多年持續自主研發,凝聚大量商業智能最佳實踐經驗,整合了各行業的數據分析和決策支持的功能需求。滿足最終用戶在企業級報表、數據可視化分析、自助探索分析、數據挖掘建模、AI智能分析等大數據分析需求。

思邁特軟體Smartbi個人用戶全功能模塊長期免費試用
馬上免費體驗:Smartbi一站式大數據分析平台

Ⅶ 用sql語句做報表,怎麼算折扣和工資

--mssqlserver:
selecta.日期,a.物料,a.工序,a.設備,a.班組,a.操作工,a.數量,a.單價,
(
casewhenb.物料種類數>1orb.物料種類數=1andc.設備種類數>1andd.工序種類數=1then0.8else1end
)as折扣,
a.數量*a.單價*(
casewhenb.物料種類數>1orb.物料種類數=1andd.工序種類數=1andc.設備種類數>1then0.8else1end
)as工資
from表名aleftjoin
(select日期,count(物料)as物料種類數,操作工from表名groupby日期,操作工)b
ona.日期=b.日期anda.操作工=b.操作工
leftjoin
(select日期,count(設備)as設備種類數,操作工from表名groupby日期,操作工)c
ona.日期=c.日期anda.操作工=c.操作工
leftjoin
(select日期,count(工序)as工序種類數,操作工from表名groupby日期,操作工)d
ona.日期=d.日期anda.操作工=d.操作工

熱點內容
招標伺服器雲 發布:2024-05-19 20:04:19 瀏覽:583
搭建小米雲伺服器 發布:2024-05-19 19:43:17 瀏覽:130
蘋果手機備忘錄怎麼加密 發布:2024-05-19 18:57:57 瀏覽:16
光榮腳本 發布:2024-05-19 18:57:48 瀏覽:997
pythonjson字元串 發布:2024-05-19 18:51:43 瀏覽:253
什麼是伺服器廠商介紹 發布:2024-05-19 18:50:09 瀏覽:371
伺服器網卡硬體型號怎麼看 發布:2024-05-19 18:36:41 瀏覽:666
修改pve伺服器ip 發布:2024-05-19 18:31:52 瀏覽:469
微信密碼忘記了如何取出裡面的錢 發布:2024-05-19 18:27:35 瀏覽:330
vs2005反編譯 發布:2024-05-19 18:26:34 瀏覽:364