Re: [SQL ] 請教一個sql的寫法
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):