112年法務部調查局調查人員三等資料庫應用

二、假設有如下團購紀錄關連式資料庫,請使用 SQL 回答下列相關問題。

(每小題5分,共20分)

    Member(fb_account, name, mobile) PKfb_account

    Group(group_code, start_datetime, end_datetime, item, unit_price) PK  group_code

    Buy_Record(fb_account, group_code, order_datetime, quantity)

        PKfb_account+group_code

        FKfb_account ref. Member (fb_account)

        FKgroup_code ref. Group

    :查詢結果如非資料表的欄位名,請以別名形式,重新給予有意義的欄位名。

    ()請列出2023/01/01~2023/06/30間有採購「綜合維他命」的成員及採購訊息,包括成員名稱、手機號碼、團號、物品、開團日期時間、結團日期時間、訂購日期、數量、消費金額,結果請依消費金額由多至少排序。

    ()請列出每團採購數量最多的成員及其採購訊息,包括成員名稱、手機號碼、團號、物品、數量、消費金額,結果請依採購數量由少至多排序顯示。

    ()請列出目前尚在採購中的團購團訊息,包括團號、開團日期時間、結團日期時間、物品、目前累計總數量,結果請依開團日期時間由近至遠排序顯示。

    ()請列出2023 一、二兩個月份,參與團購團數 > 1 客戶的訊息,包括客戶名稱、手機號碼、參與的團數。

答:

Member資料表:

fb_account

group_code

order_datetime

quantity

F001

G001

2023-01-02 00:00:00.000

100

F001

G002

2023-02-05 00:00:00.000

100

F001

G004

2023-04-17 00:00:00.000

200

F002

G001

2023-01-03 00:00:00.000

300

F003

G001

2023-01-12 00:00:00.000

200

F003

G002

2023-02-14 00:00:00.000

500

F003

G003

2023-03-15 00:00:00.000

600

F003

G004

2023-04-27 00:00:00.000

200

F004

G003

2023-03-16 00:00:00.000

100

F004

G005

2023-07-16 00:00:00.000

100


Group資料表:

group_code

start_datetime

end_datetime

item

unit_price

G001

2023-01-01 00:00:00.000

2023-01-12 00:00:00.000

綜合維他命

200.00

G002

2023-02-05 00:00:00.000

2023-02-28 00:00:00.000

物品二

150.00

G003

2023-03-01 00:00:00.000

2023-03-18 00:00:00.000

物品三

100.00

G004

2023-04-05 00:00:00.000

2023-04-28 00:00:00.000

綜合維他命

300.00

G005

2023-07-01 00:00:00.000

2023-07-26 00:00:00.000

物品五

200.00

Buy_Record資料表:

fb_account

group_code

order_datetime

quantity

F001

G001

2023-01-02 00:00:00.000

100

F001

G002

2023-02-05 00:00:00.000

100

F001

G004

2023-04-17 00:00:00.000

200

F002

G001

2023-01-03 00:00:00.000

300

F003

G001

2023-01-12 00:00:00.000

200

F003

G002

2023-02-14 00:00:00.000

500

F003

G003

2023-03-15 00:00:00.000

600

F003

G004

2023-04-27 00:00:00.000

200

F004

G003

2023-03-16 00:00:00.000

100

F004

G005

2023-07-16 00:00:00.000

100

()列出2023/01/01~2023/06/30間有採購「綜合維他命」的成員及採購訊息,包括成員名稱、手機號碼、團號、物品、開團日期時間、結團日期時間、訂購日期、數量、消費金額,結果請依消費金額由多至少排序

Select M.name As 成員名稱, M.mobile As 手機號碼, G.group_code As 團號,

    G.item As 物品, G.start_datetime As 開團日期時間,

    G.end_datetime As 結團日期時間, BR.order_datetime As 訂購日期,

    BR.quantity As 數量, G.unit_price*BR.quantity As 消費金額

From Buy_Record As BR, Member as M, [Group] as G

Where BR.fb_account = M.fb_account And BR.group_code = G.group_code And

    order_datetime Between '2023-01-01' And '2023-06-30' And

    G.item = '綜合維他命'

Order By 消費金額 Desc

執行結果:

成員名稱

手機號碼

團號

物品

開團日期時間

結團日期時間

訂購日期

數量

消費金額

王一

0912-000-001

G004

 綜合維他命

2023-04-05 00:00:00.000

2023-04-28 00:00:00.000

2023-04-17 00:00:00.000

200

60000.00

張二

0912-000-002

G001

綜合維他命

2023-01-01 00:00:00.000

2023-01-12 00:00:00.000

2023-01-03 00:00:00.000

300

60000.00

吳三

0912-000-003

G004

綜合維他命

2023-04-05 00:00:00.000

2023-04-28 00:00:00.000

2023-04-27 00:00:00.000

200

60000.00

吳三

0912-000-003

G001

綜合維他命

2023-01-01 00:00:00.000

2023-01-12 00:00:00.000

2023-01-12 00:00:00.000

200

40000.00

王一

0912-000-001

G001

綜合維他命

2023-01-01 00:00:00.000

2023-01-12 00:00:00.000

2023-01-02 00:00:00.000

100

20000.00

()列出每團採購數量最多的成員及其採購訊息,包括成員名稱、手機號碼、團號、物品、數量、消費金額,結果請依採購數量由少至多排序顯示

DROP VIEW IF EXISTS [dbo].[MaxQuantityPerGroup]

GO

Create View MaxQuantityPerGroup As

    Select BR.group_code As 團號, MAX(BR.quantity) As 最大數量

    From Buy_Record AS BR

    Group By BR.group_code

GO

Select M.name As 成員名稱, M.mobile As 手機號碼, G.group_code As 團號,

    G.item As 物品, BR.quantity As 數量, G.unit_price*BR.quantity As 消費金額

From Buy_Record As BR, Member as M, [Group] as G, MaxQuantityPerGroup MaxQ

Where BR.fb_account = M.fb_account And BR.group_code = G.group_code And

    BR.group_code = MaxQ.團號 AND BR.quantity = MaxQ.最大數量

Order By BR.quantity Asc

執行結果:

成員名稱

手機號碼

團號

物品

數量

消費金額

陳四

0912-000-004

G005

物品五

100

20000.00

王一

0912-000-001

G004

綜合維他命

 200

60000.00

吳三

0912-000-003

G004

綜合維他命

200

60000.00

張二

0912-000-002

G001

綜合維他命

300

60000.00

吳三

0912-000-003

G002

物品二

500

75000.00

吳三

 0912-000-003

G003

物品三

600

60000.00

()列出目前尚在採購中的團購團訊息,包括團號、開團日期時間、結團日期時間、物品、目前累計總數量,結果請依開團日期時間由近至遠排序顯示

Select G.group_code As 團號, G.start_datetime As 開團日期時間,

    G.end_datetime As 結團日期時間, G.item As 物品,

    Sum(BR.quantity) As 目前累計總數量

From Buy_Record As BR, Member as M, [Group] as G

Where BR.fb_account = M.fb_account And BR.group_code = G.group_code And

    GETDATE( ) Between G.start_datetime And G.end_datetime

Group By G.group_code, G.start_datetime, G.end_datetime, G.item

Order By 開團日期時間 Desc

執行結果:

團號

開團日期時間

結團日期時間

物品

目前累計總數量

G001

2023-01-01 00:00:00.000

2023-01-12 00:00:00.000

綜合維他命

600

()列出2023 一、二兩個月份,參與團購團數 > 1 客戶的訊息,包括客戶名稱、手機號碼、參與的團數

Select M.name As 客戶名稱, M.mobile As 手機號碼,

    Count(BR.group_code) As 參與的團數

From Buy_Record As BR, Member as M, [Group] as G

Where BR.fb_account = M.fb_account And BR.group_code = G.group_code And

    YEAR(BR.order_datetime) = 2023 And MONTH(BR.order_datetime) IN (1, 2)

Group By M.name, M.mobile

Having Count(BR.group_code) > 1

執行結果:

客戶名稱

手機號碼

參與的團數

王一

0912-000-001

2

吳三

0912-000-003

2

 

 

arrow
arrow

    jacksaleok 發表在 痞客邦 留言(1) 人氣()