Re: [SQL ] 請教一個sql的寫法

看板Database作者 (TeemingVoid)時間14年前 (2011/12/23 21:52), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《Arim (Arim5566)》之銘言: : 各位版友好 : 如果我的schema如下 : Client(cid,cname) : Product(pid,pname) : O(oid,cid) /*訂單,每一個cid只會有一個oid*/ : OD(oid,pid) /*訂單明細*/ : 想請教一下 : 如果我要將 "所有pid都有購買的cname"給列出來 : 應該要怎麼寫呢? 我可能會這樣寫,提供給您參考: 1. 列出客戶們訂購的(不重複)產品清單 (下列程式的 ClientsBuyWhat)。 2. 以第一點的資料為基礎,統計各個客戶訂購產品的筆數。 3. 如果訂購的筆數 = 產品筆數 ==> 我們想要的資料。 程式如下(以 MS-SQL 2005/2008 為例),希望會有幫助: with ClientsBuyWhat as ( select distinct c.cid, cname, od.pid from Client c join o on o.cid = c.cid join od on od.oid = o.oid ) select cid, cname from ClientsBuyWhat group by cid, cname having COUNT(*) = (select COUNT(*) from Product) go -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.128.237

12/23 22:41, , 1F
受教了 謝謝:)
12/23 22:41, 1F
文章代碼(AID): #1Ez8UW_e (Database)
文章代碼(AID): #1Ez8UW_e (Database)