SELECT
CD.CountryID, CD.GrossLimit, CD.UnsecuredLimit,
SUM(LT1.Amount), SUM(LT1.Unsecured),
(100*SUM(LT1.Unsecured) / CD.UnsecuredLimit) as PercOverCountryLimit
FROM CountryDetail CD
INNER JOIN
(
SELECT CompanyName AS Company, CollateralSName as Collateral, SUM(Amount) AS Amount,
SUM(Usecured) AS Unsecured, LT.Date as Date, Max(CountryID) as CountryID
FROM Loanstotal LT
WHERE YearMonth = @YearMonth
GROUP BY CompanyName, CollateralSName, LT.Date
) LT1
GROUP BY CountryID, GrossLimit, UnsecuredLimit
ON CD.CountryID = LT1.CountryID
答案 0 :(得分:1)
嗯,我马上就看到了一些可能出现的问题 首先你的group by在不正确的地方,它需要在连接中的ON子句之后而不是它之前。
拼写错误的可能问题:SUM(使用固化)应该是SUM(不安全)吗?
接下来,根据您总结的字段中的数据类型,您可能会遇到整数数学问题。除以整数的整数将给出整数结果(例如,3/2 = 1),因此您必须将一个值转换为数字。
可能存在其他问题,具体取决于您使用的SQL版本,您需要指定支持哪个数据库才能获得最佳答案。我的基于SQL服务器的功能。