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