为什么这个SQL查询错了?

时间:2014-04-16 21:03:37

标签: sql

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

1 个答案:

答案 0 :(得分:1)

嗯,我马上就看到了一些可能出现的问题 首先你的group by在不正确的地方,它需要在连接中的ON子句之后而不是它之前。

拼写错误的可能问题:SUM(使用固化)应该是SUM(不安全)吗?

接下来,根据您总结的字段中的数据类型,您可能会遇到整数数学问题。除以整数的整数将给出整数结果(例如,3/2 = 1),因此您必须将一个值转换为数字。

可能存在其他问题,具体取决于您使用的SQL版本,您需要指定支持哪个数据库才能获得最佳答案。我的基于SQL服务器的功能。