提前感谢您的帮助。我有很多表,在这里找到它们:Click for image of ERD
商业赞助商可以是企业,也可以是校友。这些商业赞助商可以捐款。这些捐款可以是货币,旅行补助等。但是它们的价值以下列格式存储:$ x,xxx,"价值"在捐赠'。
我必须列出捐赠总金额超过25,000美元的所有商业赞助商(BusinessID和AlumniID)。结果必须按捐赠总金额的降序排序。
如果有帮助,我会截取DESC查询校友,捐赠和BusinessSponser的截图结果:DESC QUERIES
我真的不确定如何继续前进,非常感谢任何帮助。再次感谢。
答案 0 :(得分:0)
SELECT A.AlumnID, SUM(D.Value)
FROM BusinessSponser B
JOIN Alumnus A
ON B.AlumnID = A.AlumnID
JOIN Donation D
ON D.BusinessID = B.BusinessID
GROUP BY A.AlumnID
UNION
SELECT A.AlumnID, SUM(D.Value)
FROM Alumnus A
JOIN Donation D
ON D.AlumnID = B.AlumnID
GROUP BY A.AlumnID
答案 1 :(得分:0)
...试
SELECT A.AlumniID,
B.FirstName,
B.LastName,
A.BusinessID,
C.BusinessName
A.TotalDonation
FROM ( SELECT AlumniID,
BusinessID,
SUM( Value ) AS TotalDonation
FROM Donation
WHERE AlumniID IS NOT NULL
GROUP BY AlumniID
UNION SELECT AlumniID,
BusinessID,
SUM( Value ) AS TotalDonation
FROM Donation
WHERE BusinessID IS NOT NULL
GROUP BY BusinessID ) A
LEFT JOIN Alumnus B
ON A.AlumniID = B.AlumniID
LEFT JOIN BusinessSponsor C
ON A.BusinessID = C.BusinessID;
我从查询开始 -
SELECT AlumniID,
BusinessID,
SUM( Value ) AS TotalDonation
FROM Donation
WHERE AlumniID IS NOT NULL
GROUP BY AlumniID
这为所有校友提供了AlumniID
和TotalDonation
。 BusinessID
已在此处转载,因此我可以将上述查询与以下查询合并,以形成一个查询...
从这里开始,我使用Alumnus表执行LEFT JOIN
,使用BusinessSponsor表执行另一个LEFT JOIN
以获取结果列表。
我建议你进一步研究 -
如果您有任何问题或意见,请随时在下面发帖。
谢谢。