Ⅰ 如何高速統計總記錄數 sql
對於數據量比較大的表做統計一般是需要單獨建一張統計表用於記錄統計數據的,這張表裡的數據可以通過觸發器在更新主表時即時更新統計表,也可在程序里寫個定時器定時更新統計表數據
Ⅱ com.ibm.db2.jcc.am.SqlDataException: DB2 SQL Error: SQLCODE=-420, SQLSTATE=22018, SQLERRMC=INTEGER,
調用INTEGER函數的時候存入了非法的字元串。這個字元串只能夠包含數字。
有可能是傳入了一個float數的字元串作為Integer的參數。
$ db2 ? sql420
SQL0420N Invalid character found in a character string argument of the
function "<function-name>".
Explanation:
The function "<function-name>" has a character string argument that
contains a character that is not valid in a numeric SQL constant. The
function may have been called as a result of using the CAST
specification with "<function-name>" as the target data type or when an
argument is implicitly cast to a numeric data type. The function or data
type used in the SQL statement may be a synonym for "<function-name>".
If a decimal character is specified in the DECIMAL function then that is
the character that must be used in place of the default decimal
character.
User response:
Ensure that the character strings that are being converted to numeric
types contain only characters that are valid in numeric SQL constants,
using the decimal character, if specified.
sqlcode: -420
sqlstate: 22018
Ⅲ SQL高手前來 怎麼用SQL 語句實現 3個列 金額總和的相加 給我代碼就好 在線等候。
用sum加不就行了?如下
declare @t table (a money,b money,c money)
insert into @t
SELECT 100,300,420 union all
SELECT 43,35,33 union all
SELECT 80,2,1
SELECT sum(a) as a,sum(b) as b,sum(c) as c,sum(a+b+c) as total from @t
Ⅳ SQL基礎教程的目錄
1.1運行SQL程序
1.2Microsoft Access
1.3Microsoft SQL Server
1.3.1SQL Server 2000
1.3.2SQL Server 2005/2008
1.4Oracle
1.5IBM DB2
1.6MySQL
1.7PostgreSQL 2.1表、列和行
2.1.1表
2.1.2列
2.1.3行
2.2主鍵
2.3外鍵
2.4聯系
2.4.1一對一
2.4.2一對多
2.4.3多對多
2.5規范化
2.5.1第一範式
2.5.2第二範式
2.5.3第三範式
2.5.4其他範式
2.6示例資料庫
2.6.1表authors
2.6.2表publishers
2.6.3表titles
2.6.4表titles_authors
2.6.5表royalties
2.7創建示例資料庫 3.1SQL語法
3.2SQL標准和一致性
3.3標識符
3.4數據類型
3.5字元串類型
3.6二進制大型對象類型
3.7精確數字類型
3.8近似數字類型
3.9布爾類型
3.10日期和時間類型
3.11時間間隔類型
3.12唯一標識符
3.13其他數據類型
3.14空值 4.1使用SELECT和FROM檢索列
4.2使用AS創建列的別名
4.3使用DISTINCT消除重復的行
4.4使用ORDER BY排序行
4.5使用WHERE篩選行
4.6使用AND、OR和NOT組合及求反條件
4.6.1AND操作符
4.6.2OR操作符
4.6.3NOT操作符
4.6.4AND、OR和NOT一起使用
4.7使用LIKE匹配模式
4.8使用BETWEEN進行范圍篩選
4.9使用IN進行列表篩選
4.10使用IS NULL測試空值 5.1創建派生列
5.2執行算術運算
5.3確定計算的順序
5.4使用||連接串
5.5使用SUBSTRING()提取子串
5.6使用UPPER()和LOWER()更改串的大小寫
5.7使用TRIM()修整字元
5.8使用CHARACTER_LENGTH()得到串長度
5.9使用POSITION()查找子串
5.10執行日期及時間間隔運算
5.11獲得當前日期和時間
5.12獲得用戶信息
5.13使用CAST()轉換數據類型
5.14使用CASE計算條件值
5.15使用COALESCE()檢查空值
5.16使用NULLIF()比較表達式 6.1使用聚合函數
6.2創建聚合表達式
6.3使用MIN()查找最小值
6.4使用MAX()查找最大值
6.5使用SUM()計算總和
6.6使用AVG()計算平均值
6.7使用COUNT()統計行數
6.8使用DISTINCT聚合不重復的值
6.9使用GROUP BY分組行
6.10使用HAVING篩選分組 7.1限定列名
7.2使用AS創建表的別名
7.3使用聯結
7.4使用JOIN或WHERE創建聯結
7.5使用CROSS JOIN創建交叉聯結
7.6使用NATURAL JOIN創建自然聯結
7.7使用INNER JOIN創建內聯結
7.8使用OUTER JOIN創建外聯結
7.9創建自聯結 8.1理解子查詢
8.2子查詢語法
8.3子查詢和聯結
8.4簡單子查詢和相關子查詢
8.4.1簡單子查詢
8.4.2相關子查詢
8.5在子查詢中限定列名
8.6子查詢中的空值
8.7使用子查詢作為列表達式
8.8使用比較操作符比較子查詢的值
8.9使用IN測試集合成員資格
8.10使用ALL比較所有子查詢的值
8.11使用ANY比較某些子查詢的值
8.12使用EXISTS檢測存在性
8.13比較等價查詢 9.1使用UNION合並行
9.2使用INTERSECT查找相同行
9.3使用EXCEPT查找不同行 10.1顯示表結構
10.2使用INSERT插入行
10.3使用UPDATE更新行
10.4使用DELETE刪除行 11.1創建表
11.2理解約束
11.3使用CREATE TABLE創建新表
11.4使用NOT NULL禁止空值
11.5使用DEFAULT確定默認值
11.6使用PRIMARY KEY指定主鍵
11.7使用FOREIGN KEY指定外鍵
11.8使用UNIQUE確保值唯一
11.9使用CHECK創建檢查約束
11.10使用CREATE TEMPORARY TABLE創建臨時表
11.11使用CREATE TABLE AS利用已存在表創建新表
11.12使用ALTER TABLE修改表
11.13使用DROP TABLE刪除表 12.1使用CREATE INDEX創建索引
12.2使用DROP INDEX刪除索引 13.1使用CREATE VIEW創建視圖
13.2通過視圖檢索數據
13.3通過視圖修改數據
13.3.1通過視圖插入行
13.3.2通過視圖更新行
13.3.3通過視圖刪除行
13.4使用DROP VIEW刪除視圖 15.1動態統計
15.2產生序列
15.3發現等差數列、遞增數列和等值數列
15.4限定返回行的數量
15.4.1Microsoft Access
15.4.2Microsoft SQL Server
15.4.3Oracle
15.4.4IBM DB2
15.4.5MySQL
15.4.6PostgreSQL
15.5分配排名
15.6計算修整均值
15.7隨機選取行
15.8處理重復值
15.9創建電話列表
15.10檢索元數據
15.10.1Microsoft Access
15.10.2Microsoft SQL Server
15.10.3Oracle
15.10.4IBM DB2
15.10.5MySQL
15.10.6PostgreSQL
15.11處理日期
15.11.1Microsoft Access
15.11.2Microsoft SQL Server
15.11.3Oracle
15.11.4IBM DB2
15.11.5MySQL
15.11.6PostgreSQL
15.12計算中值
15.13查詢極值
15.14改變動態統計的中流
15.15旋轉結果
15.16處理層次結構
索引
Ⅳ java連接SQL...時發生的錯誤..
1. 和你自己電腦上連接的數據用戶名和密碼是否一樣的。你電腦上的數據是否為混合登陸模式。
2.從新在配一下直鏈包。如果是橋聯檢查數據源。
3.驅動的串中連接的數據名和數據地址是否正確。
4.
如果你學校的機器是Windows 2000而你家的是XP系統應該是這個原因。懷疑你的SP4安裝的不正確。這個包第一安裝相當於解壓,在解壓的文件夾中還有個文件,啟動後才能進入安裝界面。
SP3時這樣的。第一次安裝將文件加壓倒C盤的sql2ksp3文件夾下然後啟動這個文件setup.bat才能完成安裝,雙擊就行。但是這個文件好像不能和SQL安裝到一個文件夾下!你看看不行的話在找我。
5.你連接的是那個資料庫,SQL Server 2000和SQL Server 2005不一樣的。
Ⅵ SQL語句問題
當in子句中包含order by 並且沒有TOP 或 FOR XML時就會出現這個報錯,你的a臨時表中的就是這種情況。應該修改為:
select a.shift_date as 日期, a.rpt, B.opt, round(a.rpt/b.opt,4) as ratio
from (SELECT shift_date, count(distinct lot_no) as rpt FROM P_LOT_OPER
WHERE LOT_NO IN (select lot_no from p_lot_deft where code_type ='DEFT'
and code in ( 'VS600','FG310','VS440','VS450','FG300','FG200','FG210','VS400','VS410','VS420','FG240')
and op not in ('AOI') AND op_next not in ('IN-LINE-FMA'))
AND OP = 'AOI' and shift_date between '2011-5-6' and '2011-5-9' and OP_CAT_NEXT IN ('O','N','C')
GROUP BY SHIFT_DATE) A left join (SELECT SHIFT_DATE, SUM(QTY) as opt FROM P_LOT_OPER WHERE OP = 'AOI'
and shift_date between '2011-5-6' and '2011-5-9' group by shift_date order by shift_date) B on a.shift_date = b.shift_date
Ⅶ 運行出錯sqlcode=-420 sqlstate=22018,字元串自變數值不符合函數的要求,有沒有高手給看看
db2吧,看不出來原因。
這樣改一下試試:
SUBSTR(D1.VIEWORDER,1,LENGTH(D2.VIEWORDER) )=(D2.VIEWORDER)
改為:
D1.VIEWORDER like D2.VIEWORDER + '%'
但這樣可能效率不高
Ⅷ 關於SQL的多個SELECT問題
select 日期,姓名,sum(支出), sum(case 時間 when 18 then 支出else 0 end)
from xiangxi
group by 日期,姓名
select 日期,sum(支出), max(支出)
from xiangxi
group by 日期
Ⅸ Excel 2010 SQL完全應用的目 錄
第1章 SQL基礎入門 1
1.1 熟悉Excel的SQL語言編寫環境 1
疑難1 如何獲取外部源數據 1
※ 通過OLE DB 介面獲取外部數據源 2
※ 使用Microsoft Query導入外部源數據 3
疑難2 如何刷新導入的外部數據 7
※ 刷新導入的外部數據源 8
疑難3 在數據源移動後如何修改數據源的連接路徑 9
※ 根據彈出提示自動修改移動的文件路徑 10
※ 通過修改連接字元串來修改移動的文件路徑 11
疑難4 如何將混合類型的欄位強制設置為文本欄位 11
※ 強制設置導入的外部數據源的欄位為文本形式 13
※ SQL中的連接字元串詳解 13
疑難5 如何對外部數據進行安全設置 15
※ 安全設置外部數據 15
1.2 SQL基礎概念 17
疑難6 如何從表中獲取多列和多行 17
※ 使用SQL語句獲取行和列數據 17
※ 什麼是關系資料庫中的表 18
※ 一行在表中表示什麼信息 18
※ 一列在表中表示什麼信息 19
疑難7 如何通過唯一標識把兩個表的數據連接在一起 19
※ 如何理解主鍵標識 20
1.3 SQL語句入門 21
疑難8 如何查詢工作表中單列數據 21
※ 使用SQL獲取單列數據 22
※ 什麼是SELECT子句 22
疑難9 如何查詢工作表中多列數據 23
※ 使用SQL語句獲取多列數據 24
※ SQL列欄位命名的限制 24
疑難10 如何查詢工作表中的所有列數據 25
※ 如何理解SQL語句中的通配符 26
※ 什麼叫別名 26
疑難11 如何使用列別名 26
※ 如何使用列別名 27
疑難12 如何使用DISTINCT查詢工作表中不重復的記錄 28
※ SQL語句中關鍵詞DISTINCT的使用 29
疑難13 如何查詢網路豪華車排行榜中某日搜索量大於800的記錄 30
※ SQL語句中WHERE子句的使用 31
疑難14 如何在SQL中使用定義名稱 31
※ 定義名稱在SQL語句中的應用 32
※ 什麼叫名稱 33
疑難15 如何對學生的成績進行降序排列 33
※ ORDER BY子句的使用 34
疑難16 如何不藉助源數據表使用SQL語句 34
※ 什麼情況下的SQL語句可以不使用FROM子句 35
疑難17 如何把一條新記錄添加到數據源中 35
※ INSERT INTO語句的使用 37
疑難18 如何在Excel中更新數據 38
※ UPDATE語句的使用 39
疑難19 如何提取帶有合並單元格的數據 39
※ 如何對包含合並單元格欄位的工作表使用SQL語句 40
疑難20 如何解決查詢結果中有空白記錄的問題 41
※ 如何去除查詢結果中出現的空白記錄 41
1.4 練習與思考 42
第2章 SQL運算符使用 43
2.1 比較運算符 43
疑難21 如何查詢報考某專業的考生 43
※ 為SQL設置條件查詢子句 44
※ 不以第一行為起點的數據表示 44
※ 等號運算符 45
疑難22 如何查詢欄位值中包含雙引號的數據 45
※ 包含引號的數據表示 46
疑難23 如何查詢指定日期的出口數據 47
※ 日期型數據表示 48
疑難24 如何查詢啤酒銷量超過50kL的信息 49
※ 帶有括弧的欄位名表示方式 50
※ 大於、小於等運算 50
疑難25 如何查詢某班外同學的考試成績 51
※ 不等號比較運算 52
2.2 邏輯運算符 52
疑難26 如何查詢缺考同學的數據 52
※ NULL值的判斷 53
疑難27 如何查詢同時參加兩項比賽的人員名單 54
※ IN運算的妙用 55
※ NOT IN運算出現NULL值時的注意事項 55
疑難28 如何查詢2010年進入公司的員工名單 56
※ 利用BETWEEN求某范圍內的數據 57
疑難29 如何查詢姓「劉」的所有人員 57
※ 運用LIKE進行模糊匹配 58
※ 模糊匹配中不確定長度的字元表示 58
疑難30 如何查詢訂單號第三、四位為指定文本的出庫記錄 59
※ 模糊匹配中長度為1的字元表示 60
疑難31 如何查詢成績為C以上的同學 60
※ 模糊匹配中字元區間的表示 61
疑難32 如何查詢商品代號中帶有數字的商品數據 62
※ 模糊匹配中數字區間的表示 62
疑難33 如何查詢姓名兩端沒有方括弧的所有員工 63
※ 模糊匹配中特殊字元的表示 64
2.3 連接運算符 64
疑難34 如何對多個欄位進行模糊查詢 64
※ 連接符(&)的妙用 65
疑難35 如何查詢同時滿足申請租賃型經濟適用房條件的人員 66
※ 同時滿足多個條件的查詢 67
疑難36 如何查詢付款超過最後付款期限及尚未付款的客戶 68
※ 滿足多個條件之一的查詢 69
2.4 算術運算符 69
疑難37 如何查詢語數外總分大於240分的同學名單和總成績 69
※ 欄位的四則運算 70
※ 日期與數字的關系和轉換 71
疑難38 如何計算員工社會保險繳納金額 72
※ 按照百分比例計算欄位 73
※ Excel中數字的精度 73
疑難39 如何根據點坐標計算距原點的距離 74
※ 冪運算的妙用 74
2.5 練習與思考 75
第3章 SQL常見函數使用 76
3.1 字元串函數 76
疑難40 如何根據二代身份證號返回出生年份 76
※ 四捨六入五單雙的規則 79
※ MIDB函數的用法 80
※ 字元與位元組的關系 80
疑難41 如何返回郵政機構所在行政區域 80
※ RIGHT函數與RIGHTB函數的區別 83
疑難42 如何分離聯系電話的區號與電話號碼 83
※ LEFT函數與LEFTB函數的區別 85
疑難43 如何替換字元串中的地名 85
※ REPLACE函數的使用 86
疑難44 如何去除字元串首尾兩側的空格 89
※ TRIM與LTRIM、RTRIM 91
※ 空格與不可見字元 91
疑難45 如何返回字元串中某字元所在位置 92
※ INSTR函數的使用 94
疑難46 如何比較兩列數據是否相同 95
※ CBOOL函數與STRCOMP函數用法比較 98
疑難47 如何查詢有換行符欄位的記錄 100
※ 處理換行符的方法 101
疑難48 如何去除路徑僅返迴文件名 101
※ INSTRREV函數的使用 102
疑難49 如何將英文歌曲名稱轉換為小寫字母 104
※ STRCONV函數的使用 105
※ LCASE函數與UCASE函數的使用 109
3.2 算術函數 111
疑難50 如何將價格進位到角得到產品零售價 111
※ ROUND函數的使用 112
※ CINT函數的使用 115
疑難51 如何求出陽台的圓弧長度 115
※ 弧度計算說明 116
疑難52 如何返回直角三角形斜邊長度 117
※ 弧度與角度的轉換 118
※ SQL中可用的其他三角函數 118
疑難53 如何將編碼轉換為十六進制數 118
※ HEX函數轉換為十六進制的使用 119
※ 二進制、八進制、十六進制介紹 120
※ 進制轉換方法簡介 120
疑難54 如何根據貨物重量返回滿載車數量 121
※ INT函數的使用 122
※ FIX函數的使用 122
3.3 轉換函數 123
疑難55 如何統一項目起止的日期格式 123
※ CDATE函數的使用 124
※ FORMATDATETIME函數的使用 126
※ FORMAT函數將文本型日期轉換為日期值 127
疑難56 如何格式化出貨量增長率 128
※ FORMATPERCENT函數的使用 129
※ FORMATNUMBER函數的使用 130
※ 用ROUND函數配合「&」返回百分比 131
※ 用FORMAT函數返回百分比 132
疑難57 如何整理投票結果並返回讀書數量 132
※ VAL函數返回數字 133
疑難58 如何將數字轉換為字元 133
※ CSTR函數的使用 134
※ CSTR函數與STR函數的區別 135
※ CVAR函數的使用 136
疑難59 如何將字元轉換成數字 136
※ CLNG函數的使用 137
※ CDBL函數、CSNG函數及CVAR函數用法比較 138
3.4 其他函數 138
疑難60 如何根據學生成績返回等第成績 138
※ SWITCH函數的使用 139
疑難61 如何得到調整後的工資額 141
※ ISNULL函數的使用 142
※ ISNUMERIC函數 143
疑難62 如何得到反轉後的迴文詩 143
※ STRREVERS函數的使用 144
疑難63 如何按規定格式返回數字與文本混雜的數據 144
※ FORMAT函數返回相應格式使用 145
※ IIF函數的使用 153
※ 純小數前是否顯示前導0 154
疑難64 如何查看支出是否超出預算 154
※ CHOOSE函數的使用 157
疑難65 如何根據二代身份證號碼判斷性別 158
※ 用MOD函數配合IIF函數取性別 159
※ 用INT+MID+ IIF函數取性別 162
3.5 練習與思考 162
第4章 SQL日期和時間函數使用 163
4.1 獲取日期 163
疑難66 如何查詢今天是星期幾 163
※ DATE函數的使用 164
※ NOW函數的使用 164
※ WEEKDAY函數的使用 165
※ WEEKDAYNAME函數的使用 168
※ DATEPART函數的使用 171
※ 關於星期的典型語句 175
疑難67 如何用SQL語句得到當前月的剩餘天數 176
※ DATEADD+DAY函數的使用 176
疑難68 如何用SQL判斷今年是平年還是閏年 178
※ DATESERIAL函數的使用 179
※ 判斷平年或閏年的語句 180
疑難69 如何用SQL獲取今年母親節的日期 182
※ WEEKDAY+DATESERIAL+FORMAT函數的使用 182
疑難70 如何用SQL計算員工的工齡工資 184
※ DATEDIFF函數的使用 185
疑難71 如何用SQL計算食品到期日期 187
※ DATEADD函數返回到期日期 188
4.2 格式化日期 188
疑難72 如何將日期和時間轉換為系統標准格式 188
※ 利用FORMAT函數轉換日期 190
疑難73 如何獲取合同簽訂的英文日期 190
※ 利用FORMAT函數轉換為英文日期 191
※ 利用函數復合運用轉換為英文日期 191
疑難74 如何將日期轉換為報表所需格式 192
※ 獲取當月總天數的技巧 193
4.3 時間段查詢 193
疑難75 如何返回第一季度中的銷售記錄 193
※ DATEPART函數忽略年份獲取日期所在的季度 194
疑難76 如何提取合同即將到期的員工及最遲續訂期限 194
※ 利用WEEKDAY函數獲取工作日信息 196
疑難77 如何獲取所有職員的星座 196
※ 不同年份查詢相同月份、日期所在區間 197
※ 笛卡兒積的概念 197
疑難78 如何找出銷售額最高的月份 198
※ 利用MONTHNAME函數獲取月份的完整表示 199
疑難79 如何查詢庫存中某日的出入庫情況匯總 199
※ 日期和時間的關系 200
4.4 練習與思考 200
第5章 SQL排序查詢 201
5.1 單列數據排序 201
疑難80 如何提取某區域的銷售記錄並按銷售額降序排列 201
※ 利用ORDER BY子句對記錄進行排序 202
※ SQL查詢機制步驟詳解 202
疑難81 如何找出考試成績總分前5名的同學 203
※ 利用TOP謂詞查詢前幾條記錄 204
※ TOP PERCENT保留記錄規律 204
疑難82 如何查詢百米賽跑項目第5~8名的運動員 205
※ 偽時間排序技巧 206
※ 查找排名中間的記錄的技巧 206
※ TOP謂詞出現重復記錄的查詢規律 207
疑難83 如何將考生姓名進行隨機排序 207
※ 隨機排序技巧 208
※ 偽隨機數概念 208
5.2 多列數據排序 209
疑難84 如何將員工名單按照多級部門進行排序 209
※ 多列排序技巧及規律 210
疑難85 如何從總分前10名中找出語文成績最差的3名同學 210
※ 在排序結果中查找指定記錄的技巧 211
疑難86 如何得到足球比賽小組賽的出線名單 212
※ 指定不同排序方法的多列排序 213
※ 利用數學計算方法進行多列排序 213
5.3 練習與思考 214
第6章 聚合函數與分組統計 215
6.1 聚合函數的應用 215
疑難87 如何求某公司的總銷售量及總銷售額 215
※ SUM函數在SQL語句中的使用 216
疑難88 如何求某班學生的各科平均成績 216
※ AVG函數在SQL中的使用 217
疑難89 如何統計訂單號不重復的數目 217
※ DISTINCT+COUNT統計不重復的記錄數 218
疑難90 如何獲取學生年齡的最大值及最小值 219
※ MAX函數及MIN函數在SQL語句中的使用 220
疑難91 如何剔除最大值及最小值後求均值 220
※ SUM+MAX+MIN+COUNT函數綜合使用 221
疑難92 如何獲得入網套餐終端補貼起始月份及終止月份 221
※ FIRST函數及LAST函數的使用 222
疑難93 如何估計貨運運費的標准偏差及標准差 222
※ STDEV函數及STDEVP函數的使用 223
疑難94 如何求某組學生口語測驗成績的方差 224
※ VAR函數及VARP函數的使用 224
疑難95 如何計算某列中空值的數目 225
※ NULL在SQL語句中的使用 226
疑難96 如何計算不同日期的數量 226
※ COUNT+FORMAT函數的使用 227
6.2 域聚合函數的應用 227
疑難97 如何按商品編碼統計累計銷售額 227
※ DSUM函數在SQL語句中的使用 229
疑難98 如何求每位學生得分最高兩科的所有記錄 229
※ DCOUNT函數在SQL語句中的使用 230
疑難99 如何求指定條件的貨款額均值 231
※ DAVG函數在SQL語句中的使用 232
疑難100 如何查詢指定條件的人員的姓名 233
※ DLOOKUP函數在SQL語句中的使用 234
疑難101 如何求指定條件的營業廳的最高分及最低分 234
※ DMAX函數及DMIN在SQL語句中的使用 235
疑難102 如何求指定條件的第一個值及最後一個值 236
※ DFIRST函數及DLAST在SQL語句中的使用 237
疑難103 如何求指定條件的方差 238
※ DVAR函數及DVARP在SQL語句中的使用 238
疑難104 如何求指定條件的標准偏差標准差 239
※ DSTDEV函數及DSTDEVP在SQL語句中的使用 240
6.3 分組統計 240
疑難105 如何匯總同一物品的數量及價格 241
※ GROUP BY子句的使用 241
疑難106 如何分組匯總多列數據 242
※ 使用多個分組列的GROUP BY子句 243
疑難107 如何查詢銷售數量大於15台的手機品牌及銷售金額 243
※ HAVING子句的使用 244
疑難108 如何查詢平均成績大於60分同學的學號、姓名和平均成績 245
※ 使用HAVING子句提取平均成績大於60分的記錄 246
疑難109 如何統計姓「林」的員工人數 246
※ HAVING子句結合LEFT函數統計某姓氏的人數 247
疑難110 如何求某車間的機器在每分鍾內的平均速度 248
※ 通過GROUP BY子句結合FORMAT函數對時間段進行分組 249
疑難111 如何查詢材料編號重復出現2次或2次以上的記錄 249
※ GROUP BY子句+HAVING子句+WHERE子句提取重復出現2次及
2次以上的記錄 250
疑難112 如何查詢只出現1次編碼的記錄 251
※ GROUP BY子句+HAVING子句提取只出現1次的記錄 251
※ WHERE子句=1提取只出現1次的記錄 252
疑難113 如何查詢「不重復且價格最低」的記錄 252
※ GROUP BY子句+MIN函數獲取最低單價的記錄 253
疑難114 如何計算每個得分范圍內的數量 253
※ GROUP BY+IIF函數的使用 254
※ GROUP BY+CHOOSE函數的使用 255
※ GROUP BY+PARTITION函數的使用 256
疑難115 如何將多行的享受月份轉化為一行起止的享受月份 256
※ GROUP BY+FIRST函數+LAST函數的使用 257
疑難116 如何實現表格行列轉置 257
※ TRANSFORM語句的使用 258
疑難117 如何得到每個人的成績表 259
※ TRANSFORM的交叉表及GROUP BY子句匯總求和 260
疑難118 如何生成列合計的交叉表 260
※ TRANSFORM+GROUP BY子句+UNION ALL求帶有小計及合計行的
結果表 261
6.4 練習與思考 264
第7章 連接查詢 265
7.1 內連接查詢 265
疑難119 如何查詢水果所對應的顏色 265
※ 一對一連接兩個工作表 266
疑難120 如何查詢每條成績表記錄所對應的學生信息 266
※ 公共欄位連接兩個工作表 267
疑難121 如何理解連接中的多對多關系 268
※ 笛卡兒積導致數據虛增的原因 269
疑難122 如何進行兩個或者兩個以上表的連接 270
※ 多個工作表連接 271
※ AND在多個工作表連接中的使用 271
疑難123 如何根據測評分數給學生評定等級 271
※ 使用BETWEEN AND連接工作表 272
疑難124 如何得到各城市滿意度大小比較關系圖 273
※ 使用大於條件連接工作表 274
疑難125 如何進行字母之間大小的對比 274
※ 通過字母大小比較連接工作表 275
疑難126 如何處理比賽對陣表 275
※ 使用行函數連接工作表 276
疑難127 如何使用INNER JOIN連接三個表 276
※ 使用INNER JOIN連接工作表 277
7.2 外連接查詢 277
疑難128 如何使用左外連接 278
※ 使用LEFT OUTER JOIN進行左連接 279
疑難129 如何使用右外連接 279
※ 使用RIGHT OUTER JOIN進行右連接 280
疑難130 如何使用全外連接 281
※ 使用全外連接 281
疑難131 如何對超過兩個或兩個以上的表進行左外連接 282
※ 多個工作表進行左連接 283
7.3 連接查詢的高級應用 284
疑難132 如何把兩個工作表的資料合並在一起 284
※ UNION ALL的使用 285
※ UNION ALL與UNION的區別 285
疑難133 如何把列數不等的兩個工作表合並起來 286
※ 列數不等的工作表進行連接 287
疑難134 如何查詢指定條件的職工資料 288
※ 剔除指定記錄進行內連接 289
疑難135 如何查詢各組長管理的組員記錄 289
※ 內連接及WHERE子句的使用 290
疑難136 如何獲取每一戶對應的戶主姓名 291
※ 左外連接的高級使用 293
疑難137 如何查詢所有學生的學號、姓名、選課數及總成績 293
※ ISNULL+IIF+左外連接的使用 294
疑難138 如何查詢學過「002」和「003」課程的學生的學號、姓名 295
※ 內連接+WHERE子句+GROUP BY子句+HAVING子句的綜合應用 296
疑難139 如何生成排列組合 297
※ 什麼叫交叉連接 298
疑難140 如何生成0~999的數字 298
※ 交叉連接生成一組數 299
7.4 練習與思考 299
第8章 子查詢 300
8.1 簡單子查詢 300
疑難141 如何查詢銷售數量大於平均銷售量的數據 300
※ 大於平均值的子查詢 301
疑難142 如何查詢「王雙」所在部門的所有員工的銷售情況 302
※ 帶有IN的子查詢 303
疑難143 如何輸出每個學生在必修表中未修的課程 304
※ 帶有NOT IN的子查詢 305
疑難144 如何查詢選修了課程名為「大學數學」的學生學號及姓名 306
※ 帶有IN的子查詢 307
疑難145 如何查詢出每家戶口所在地不同的記錄 309
※ 使用EXISTS謂詞進行子查詢 310
疑難146 如何查詢數學成績大於80分的學生的相關記錄 310
※ 使用NOT EXISTS謂詞進行子查詢 311
疑難147 如何查詢銷售數量大於北京分公司所有產品銷售數量的品種、
分公司、數量、金額 312
※ 使用ALL進行子查詢 313
疑難148 如何查詢高於某些店銷售數量的信息 314
※ 使用ANY進行子查詢 315
疑難149 如何查詢兩門以上不及格課程的學生姓名、學號及其平均成績 316
※ 多條件獲取符合條件的學號進行子查詢 317
疑難150 如何查詢大於平均年齡的員工姓名、年齡及學歷 318
※ 使用HAVING子句進行子查詢 319
8.2 復雜的子查詢 319
疑難151 如何返回所在系平均年齡在系平均年齡以上的教師相關信息 319
※ 使用比較表達式進行子查詢 320
疑難152 如何求各城市各月銷售數量之間的排名 320
※ 使用1+COUNT(*)產生排名的子查詢 321
疑難153 如何對考生的成績進行排名 322
※ 使用多個1+COUNT(*)進行子查詢 323
疑難154 如何匯總各個國家獲得兩塊以上的金牌記錄 323
※ 使用SUM(1)進行子查詢 324
疑難155 如何查詢進價相同及進價不同的商品 325
※ 結合FIRST+LAST+IN的子查詢 327
疑難156 如何實現在分類匯總行中對某欄位進行計數統計 327
※ 帶有「總計」的綜合子查詢 328
疑難157 如何統計各大區域各省份的歷年項目數小計並在所在區域內進行排名 329
※ 多層嵌套綜合子查詢 331
疑難158 如何根據各城市銷售數量給其增加自動編號列 331
※ 嵌套子查詢及1+COUNT(*)形成排名 333
8.3 練習與思考 333
第9章 SQL與數據透視表 334
9.1 數據透視表基礎 334
疑難159 如何匯總各供應商的供貨總數及總金額 334
※「數據透視表欄位列表」窗格說明 335
疑難160 如何統計各班某科成績的總體情況 336
※ 數據透視表匯總方式介紹 338
疑難161 如何在數據透視表中使用滑鼠拖放 338
※ 啟用經典數據透視表布局 339
疑難162 如何設置合並單元格標志 339
※ 設置數據透視表合並單元格標志 340
疑難163 如何添加計算欄位來計算銷售金額提成 340
※ 數據透視表計算欄位介紹 341
疑難164 如何添加計算項獲取同比值 342
※ 數據透視表計算項介紹 343
疑難165 如何按年月匯總銷售額 343
※ 數據透視表日期欄位分組組合 344
疑難166 如何創建年份的單頁欄位數據透視表 345
※ 創建數據透視表自定義頁欄位 347
9.2 SQL與數據透視表 347
疑難167 如何創建動態的數據透視表 347
※ 使用SQL語句創建動態的數據透視表 349
疑難168 如何匯總同一個工作簿中的所有數據 349
※ 使用SQL語句連接同一個工作簿內所有的工作表創建動態的數據透視表 351
疑難169 如何匯總同一個工作簿中不同區域的數據 351
※ 使用SQL語句連接同一個工作簿內不同工作表中的不同區域創建數據透視表 353
疑難170 如何匯總不同工作簿中不同工作表的數據 353
※ 使用SQL語句連接不同工作簿中不同工作表的所有數據創建動態的數據透視表 356
疑難171 如何對列數不等的工作表創建數據透視表 357
※ 使用SQL語句連接列數不等的工作表創建動態的數據透視表 359
疑難172 如何分別統計各部門不同性別、學歷、職位的人數 359
※ 使用SQL語句對源數據進行結構轉換創建動態的數據透視表 361
疑難173 如何創建當月銷量及累計銷量的數據透視表 362
※ 使用SQL語句創建帶有當月統計及累計的動態數據透視表 364
9.3 練習與思考 365
第10章 SQL和VBA 366
10.1 VBA基礎 366
疑難174 如何輸入和修改VBA代碼並保存 366
※ VBA編輯環境及VBA代碼的編寫和運行 368
※ 啟用宏的工作簿在Excel 2003與Excel 2007及以上版本的區別 369
疑難175 如何設置SQL所需的VBA環境 369
※ 引用ADO組件設置SQL編程環境 369
10.2 利用ADO組件進行資料庫連接 370
疑難176 如何創建資料庫連接實現簡單的SQL查詢 370
※ 利用ADO連接資料庫 371
※ 利用ADO執行SQL查詢,並在Excel中輸出結果 371
※ ADO連接不同的資料庫 371
疑難177 如何使用VBA實現多資料庫查詢 373
※ 同時查詢多個不同的資料庫 374
疑難178 如何讓用戶選擇資料庫進行查詢 374
※ 利用VBA選擇資料庫路徑 376
※ Excel自定義文檔屬性的概念 377
10.3 利用ADO組件進行表的操作 377
疑難179 如何使用VBA在資料庫中新建一個表 377
※ 用CREATE語句新建數據表 378
※ 用SQL語句新建Excel工作表 379
疑難180 如何使用VBA刪除資料庫中的表 379
※ DROP語句刪除表 380
疑難181 如何使用VBA創建新的欄位 381
※ 新建數據表中的欄位 382
※ 刪除數據表中的欄位 382
疑難182 如何使用VBA修改表中現有的欄位類型 382
※ 修改數據表中的欄位名及類型 383
疑難183 如何使用VBA將某個表復制到其他資料庫中 383
※ 整個數據表的復制 385
10.4 數據操作 385
疑難184 如何使用VBA向表中添加新的記錄 385
※ INSERT INTO語句實現數據的添加 387
疑難185 如何使用VBA將滿足條件的記錄添加到表中 388
※ INSERT INTO語句實現數據的批量添加 389
疑難186 如何使用VBA修改某個特定記錄 390
※ UPDATE語句實現數據的批量修改更新 391
※ UPDATE語句實現跨數據表的更新 392
疑難187 如何使用VBA批量更新記錄 392
※ DELETE語句實現數據的批量刪除 394
※ 數據表的刪除和清空 394
疑難188 如何使用VBA將SQL查詢結果用於數據透視表 394
※ 創建數據透視表的數據源 396
疑難189 如何使用VBA獲取某幾行記錄 397
※ 用GetRows方法實現將查詢結果轉換為數組 398
※ 記錄集的指針 398
疑難190 如何使用VBA進行多表匯總 399
※ 多表的匯總查詢 401
※ OpenSchema實現資料庫中結構的獲取 401
疑難191 如何使用VBA進行文件的上傳和下載 402
※ 將SQL查詢結果存放於記錄集對象 405
※ AddNew實現記錄的添加 405
※ 附件數據類型的應用 407
10.5 練習與思考 408
第11章 綜合應用 409
11.1 銷售報表分析 409
疑難192 如何獲取2010年各月銷售總數量及總金額 409
※ 使用SQL語句對多個工作表進行分組匯總 411
疑難193 如何獲取2010年銷量前10位客戶各月銷售數量明細表 411
※ 使用SQL語句結合數據透視表獲取銷量前10位的客戶明細 411
疑難194 如何獲取各客戶在2010年各個產品分類的銷售總量及銷售總金額 414
※ 獲取各產品銷售總量及銷售總金額 414
疑難195 如何獲取各銷售經理所負責客戶的銷售總量及總金額 416
※ 獲取各客戶銷售總量及銷售總金額 416
疑難196 如何獲取各個區域的銷售總量及銷售總金額 417
※ 獲取各區域銷售總量及銷售總金額 417
疑難197 如何匯總各業務員的銷售總量及銷售總金額 418
※ 獲取各業務員的銷售總量及銷售總金額 419
11.2 利用VBA結合SQL設計微型系統 420
疑難198 如何設計通訊錄 421
疑難199 如何設計通用匯總程序 430
疑難200 如何設計工資管理系統 447
Ⅹ SQL中怎麼修改主鍵里的屬性這個主鍵和另一個表有外鍵約束
如果表中有數據,修改屬性時要控制不丟失數據,你可以通過設計器修改;
若要使用 Transact-SQL 或 SQL-DMO 修改 PRIMARY KEY,必須先刪除現有的 PRIMARY KEY 約束,然後再用新定義重新創建;
當 PRIMARY KEY 約束由另一表的 FOREIGN KEY 約束引用時,不能刪除 PRIMARY KEY 約束;要刪除它,必須先刪除 FOREIGN KEY 約束;