在 Where in 中使用子查詢
1
2
3
4
5
--取得4月份有販賣之商品的商品名稱(使用子查詢)
select [商品名稱] from [商品清單]
where [商品ID] in
(select distinct [商品ID] from [販賣資料]
where [處理日] between '2006-04-01' and '2006-04-30')
IN可能存在的效能疑慮(效能差),EXISTS可以取代
在 Form 中使用子查詢
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
--請輸出商品別的販賣單價合計與全部商品之販賣單價合計的比率(%)
--這裡的購買單價合計是指:購買單價*數量
select T2.商品名稱, T2.商品別總計, (T2.商品別總計/T1.總計)*100 '%'
from
(
--總計
select sum([數量]*B.販賣單價) 總計
from [販賣資料] A
join [商品清單] B on B.商品ID = A.商品ID
) T1,
(
--計算商品別總數量、商品別總計
select B.商品名稱, sum(A.數量) 商品別總數量, (B.販賣單價 * sum(A.數量)) 商品別總計
from [販賣資料] A
right join [商品清單] B on B.商品ID = A.商品ID
group by B.商品名稱,B.販賣單價
) T2
執行結果
1
2
3
4
5
6
7
8
9
10
11
商品名稱 商品別總計 %
數位相機 NULL NULL
HUB 35000 0.756700
網路卡 40000 0.864800
印表機 25000 0.540500
掃描器 30000 0.648600
17吋螢幕 250000 5.405400
19吋螢幕 285000 6.162100
15吋液晶螢幕 720000 15.567500
桌上型電腦 1080000 23.351300
筆記型電腦 2160000 46.702700
使用 Join
1
2
3
4
--取得4月份有販賣之商品的商品名稱(Join)
select distinct B.商品名稱 from [販賣資料] A
join [商品清單] B on B.商品ID = A.商品ID
where A.[處理日] between '2006-04-01' and '2006-04-30'