使用INNER JOIN时选择所有列

时间:2017-08-24 05:40:28

标签: sql-server

我有这样的SQL代码:

SELECT
    TB_DataProperti.*,
    TBL_Rating.ISNULL(AVG(Rating), 0) AverageRating
FROM 
    TB_DataProperti
INNER JOIN 
    TBL_Rating ON TB_DataProperti.Kode_Properti = TBL_Rating.Kode_Properti
GROUP BY 
    TB_DataProperti.JudulListing
ORDER BY 
    AverageRating DESC

我收到此错误:

  

Msg 8120,Level 16,State 1,Line 3
  列'TB_DataProperti.Kode_Properti'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

我只想使用*选择所有数据列,因为我有很多列

1 个答案:

答案 0 :(得分:0)

问题是你正在尝试在另一个表上使用一个表和group by的聚合函数。规则是如果你使用聚合函数和另一个列然后该列应该在group by中使用。请尝试这个我希望这是是有用的。

  SELECT
        TB_DataProperti.*,
        ISNULL(AVG(TBL_Rating.Rating), 0)   over (partition by TBL_Rating.Kode_Properti) as AverageRating
    FROM 
        TB_DataProperti
    INNER JOIN 
        TBL_Rating ON TB_DataProperti.Kode_Properti = TBL_Rating.Kode_Properti
    ORDER BY 
        AverageRating DESC