1
select  tblProductMaster.*,AVG(tblReviewMaster.Rating) from tblProductMaster 
    left join tblReviewMaster 
    on tblProductMaster.ProductID = tblReviewMaster.ProductID       
Group By tblProductMaster.ProductID     

このクエリはエラーを返します:

列 'tblReviewMaster.ReviewID' は、集計関数にも GROUP BY 句にも含まれていないため、選択リストでは無効です。

AVG関数を使用した列を作成できません...次のように書くと

select AVG(tblReviewMaster.Rating) from tblProductMaster ...

その後、正常に動作します

では、製品の詳細を取得するにはどうすればよいtblProductMasterでしょうか。

4

1 に答える 1

0

エラー メッセージには、「列 'tblReviewMaster.ReviewID' は、集計関数または GROUP BY 句のいずれにも含まれていないため、選択リストでは無効です。

これは、集計関数 (AVG) の列以外のすべての列が Group By 句の一部である必要があることを意味します。したがって、* が (列 1、列 2....など) を意味する場合、これらの列はすべて GroupBy 句に存在する必要があります。

したがって、クエリは次のようになります

select  tblProductMaster.*,AVG(tblReviewMaster.Rating) from tblProductMaster 
    left join tblReviewMaster 
    on tblProductMaster.ProductID = tblReviewMaster.ProductID       
Group By tblProductMaster.* 

* とは、* を表すすべての列を書くことを意味します。※ここでは使えません。

詳細については、 MSDNを参照してください

于 2012-11-27T07:29:18.867 に答える