0
試圖找出誰在任何單一公司 在這裏舉行的股份,超過0.5%的全體股東是我的查詢,我相信我靠近還附有影像具有架構甲骨文發現股東子查詢
![Select Sh.Share_Holder_Id Shareholderid,
Sh.First_Name||' '||Sh.Last_Name Shareholders,
c.name,
sum(T.Share_Amount) ShareAmount
From Trades T
Inner Join
Share_Holders Sh
On
T.Share_Holder_Id =Sh.Share_Holder_Id
Inner Join
Shares S
On
S.Share_Id =T.Share_Id
Inner Join
Companies C
on
C.Company_Id=S.Company_Id
Where exists (
Select
sum(case when shs.amount IS NULL THEN 1 ELSE 0 END)/count (*)*100
From Shares S1
Inner Join Share_Holder_Shares shs
On
Shs.Share_Id=S1.Share_Id
-- where Shs.Amount/t.share_amount * 100 > 0.5
)
Group By Sh.Share_Holder_Id,Sh.First_Name||' '||Sh.Last_Name,C.Name
order by Shareholderid;
在SQLFiddle中重新創建模式會更有用 – Samson 2012-07-30 21:21:22
您應該查看Window函數。類似於SUM(ShareAmount)OVER(PARTITION BY CompanyID,Share_Holder_ID)/ SUM(ShareAmount)OVER(PARTITION BY CompanyID)''會給你你的百分比。不幸的是你的模式對我沒有意義,所以我不能提供完整的查詢。建議考慮在sql小提琴中僅發佈相關表格和一些示例數據的架構的削減版本。 – GarethD 2012-07-30 22:09:16