case:要求在一張銷售信息表中查詢每件產品的最近銷售日期(不用PL/SQL實現)。
創建test_purchase表:
SQL
>
?
create
?
table
?test_purchase(
??
2
??product_name?
varchar2
(
25
),
??
3
??salesperson?
varchar2
(
3
),
??
4
??purchase_date?date,
??
5
??quantity?
number
(
4
,
2
)
??
6
??);

表已創建。
往test_purchase表中插入數據:
SQL
>
?
insert
?
into
?test_purchase?
values
(
'
small?widget
'
,
'
ca
'
,to_date(
'
2003-7-14
'
,
'
YYYY-MM-DD
'
),
1
);

已創建?
1
?行。

SQL
>
?
insert
?
into
?test_purchase?
values
(
'
medium?wodget
'
,
'
bb
'
,to_date(
'
2003-7-14
'
,
'
YYYY-MM-DD
'
),
75
);

已創建?
1
?行。

SQL
>
?
insert
?
into
?test_purchase?
values
(
'
chrome?phoobar
'
,
'
ga
'
,to_date(
'
2003-7-14
'
,
'
YYYY-MM-DD
'
),
2
);

已創建?
1
?行。

SQL
>
?
insert
?
into
?test_purchase?
values
(
'
small?widget
'
,
'
ga
'
,to_date(
'
2003-7-15
'
,
'
YYYY-MM-DD
'
),
8
);

已創建?
1
?行。

SQL
>
?
insert
?
into
?test_purchase?
values
(
'
medium?wodget
'
,
'
lb
'
,to_date(
'
2003-7-15
'
,
'
YYYY-MM-DD
'
),
20
);

已創建?
1
?行。

SQL
>
?
insert
?
into
?test_purchase?
values
(
'
round?snaphoo
'
,
'
ca
'
,to_date(
'
2003-7-16
'
,
'
YYYY-MM-DD
'
),
5
);

已創建?
1
?行。
SQL
>
?
select
?
*
?
from
?test_purchase?
where
(product_name,purchase_date)
??
2
??
in
??
3
??(
select
?product_name,
max
(purchase_date)?
from
?test_purchase?
group
?
by
?product_name);

PRODUCT_NAME??????????????SAL?PURCHASE_D???QUANTITY
--
-----------------------?---?----------?----------
chrome?phoobar????????????ga??
2003
-
07
-
14
??????????
2
medium?wodget?????????????lb??
2003
-
07
-
15
?????????
20
round
?snaphoo?????????????ca??
2003
-
07
-
16
??????????
5
small?widget??????????????ga??
2003
-
07
-
15
??????????
8
創建test_purchase表:








往test_purchase表中插入數據:























關鍵的select 子查詢語句來了,呵呵










其實仔細想一想也不是很復雜,不過這條語句乍一想來如何寫還真有點困難,所以用了個妙字,:p