全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:975
推到 Plurk!
推到 Facebook!

關於產品與產品組成的 SQL 敘述問題

尚未結案
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-22 15:58:33 IP:61.56.xxx.xxx 未訂閱
大家好:
  我有一個 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-22 19:51:58 IP:218.32.xxx.xxx 未訂閱
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) 因為家裏沒有 Name='ccc' class="code"> select distinct A.*,B.Amount from Product A, Party B where A.Name <>'ccc' and A.OID not in (select distinct SuitOID from Party) and B.FixtureOID=A.OID and B.SuitOID=(select OID from Product where Name='ccc') union select distinct A.*,0 from Product A where A.Name <>'ccc' and A.OID not in (select distinct SuitOID from Party) and A.OID not in (select distinct FixtureOID from Party where SuitOID=(select OID from Product where Name='ccc')) 發表人 - Mickey 於 2003/11/22 23:15:06
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-24 11:27:52 IP:218.163.xxx.xxx 未訂閱
select A.*,isnull(B.Amount,0) as Amount from Product A left join Party B on (B.FixtureOID=A.OID and B.SuitOID in (select OID from PRoduct where Name='ccc')) where A.Name <>'ccc' and A.OID not in (select distinct SuitOID from Party)    我試可以...
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-24 15:17:12 IP:61.30.xxx.xxx 未訂閱
親愛的 Mickey 大哥: 感謝您特地為我解答這個題目 < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-24 22:49:46 IP:218.32.xxx.xxx 未訂閱
引言: 親愛的 Mickey 大哥: 感謝您特地為我解答這個題目 < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
系統時間:2024-06-28 18:52:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!