關於產品與產品組成的 SQL 敘述問題 |
尚未結案
|
ha0009
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
大家好: 我有一個 SQL 的問題想請教大家,下面描述我的問題。 資料庫 MS SQL 2000 描述 我有一個產品檔,與套裝組成檔。產品檔內的產品有兩種,一種是單一的產品, 另一則是由單一產品所組合的套裝產品(類似群組)。而產品組成檔則包含了套裝 所需的單一產品。重點是套裝不能被組合,只有單一產品才能被組合。 Product 產品檔 PK OID int 4 0 Name varchar 20 0 KindOID tinyint 1 0 CanRent tinyint 1 0 ColorOID tinyint 1 0 StyleOID smallint 2 0 Price int 4 0 BuildDate smalldatetime 4 0 UpdateDate smalldatetime 4 0 Img image 16 1 Annotation varchar 100 1 Party 套裝組成檔 PK SuitOID int 4 0 PK FixtureOID int 4 0 Amount tinyint 1 0 產品資料 1 aaa 1 1 1 1 100 2003/10/18 17:24:00 2003/10/18 17:24:00 <二進位> 2 bbb 1 1 1 1 100 2003/10/18 17:25:00 2003/10/18 17:25:00 <二進位> 3 ccc 2 1 1 1 1 2003/11/18 13:53:00 2003/11/18 13:53:00 <二進位> fsdg 4 ddd 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 5 eee 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 6 fff 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 7 ggg 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 8 hhh 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 9 iii 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 10 jjj 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 套裝組成檔 SuitOID FixtureOID Amount 3 1 1 3 2 1 6 1 1 6 2 1 6 3 1 問題 我要完成一個套裝配件挑選的視窗,我該如何下 SQL 語法由兩個表格中列出符合 條件的單一產品供組合呢? 選出來的欄位除了產品資料為還要有套裝組成檔中的 Amount 套裝挑選 例如 以產品 aaa 進入則會出現 2 bbb 1 1 1 1 100 2003/10/18 17:25:00 2003/10/18 17:25:00 <二進位> 0 4 ddd 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 5 eee 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 7 ggg 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 8 hhh 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 9 iii 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 10 jjj 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 以產品 bbb 進入則會出現 1 aaa 1 1 1 1 100 2003/10/18 17:24:00 2003/10/18 17:24:00 <二進位> 4 ddd 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 5 eee 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 7 ggg 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 8 hhh 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 9 iii 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 10 jjj 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 以產品 ccc 進入則會出現 1 aaa 1 1 1 1 100 2003/10/18 17:24:00 2003/10/18 17:24:00 <二進位> 1 2 bbb 1 1 1 1 100 2003/10/18 17:25:00 2003/10/18 17:25:00 <二進位> 1 4 ddd 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 5 eee 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 7 ggg 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 8 hhh 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 9 iii 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 10 jjj 1 1 1 1 1 2003/11/21 17:46:00 2003/11/21 17:46:00 <二進位> 0 ![]() ![]() |
Mickey
版主 ![]() ![]() ![]() ![]() ![]() 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
ha0009 你好 : 我用 ACCESS 試, 只能做到 :
select A.*,B.Amount from Product A
left join Party B on (B.FixtureOID=A.OID and B.SuitOID=3)
where
A.Name <>'ccc'
and A.OID not in (select distinct SuitOID from Party)
|
Mickey
版主 ![]() ![]() ![]() ![]() ![]() 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
ha0009
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
Mickey
版主 ![]() ![]() ![]() ![]() ![]() 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |