-1

私は2つのテーブルを持っています-AfricanRatingsAfricanRatingsAVGAfricanRatingsAVGクエリの結果です:

INSERT INTO AfricanRatingsAVG 
SELECT RecipeID, COUNT(*) AS Count, AVG(Rating) AS RatingAVG
FROM AfricanRatings
GROUP BY RecipeID

このクエリは正常に機能AfricanRatingsAVGし、に新しいエントリが作成されると更新されAfricanRatingsます。

GridViewコントロールが使用され、AfricanRatingsAVGからのデータがGridViewに適切に表示されます。私の問題:3番目のテーブルのデータも必要です。AfricanRecipesも同じGridViewに含まれています。JOINの後にJOINを試しましたが、結果がありません。最後に試行された2つのJOINSは次のとおりです。

SelectCommand="SELECT * 
FROM (SELECT RecipeID, COUNT(*) AS Count, AVG(Rating) AS RatingAVG
FROM AfricanRatings
GROUP BY RecipeID  ) AS AfricanRatingsAVG
JOIN (SELECT AfricanRecipes.RecipeID, AfricanRecipes.Category, AfricanRecipes.Name, AfricanRecipes.Description
FROM AfricanRecipes
GROUP BY RecipeID  ) AS AfricanRecipes ON (AfricanRatingsAVG.RecipeID = AfricanRecipes.RecipeID)"

SelectCommand="SELECT * 
FROM (SELECT RecipeID, COUNT(*) AS Count, AVG(Rating) AS RatingAVG
FROM AfricanRatings
GROUP BY RecipeID  ) AS AfricanRatingsAVG
JOIN AfricanRecipes.RecipeID, AfricanRecipes.Category, AfricanRecipes.Name, AfricanRecipes.Description
FROM AfricanRecipes
GROUP BY RecipeID AS AfricanRecipes ON (AfricanRatingsAVG.RecipeID = AfricanRecipes.RecipeID)"

上記の最初のJOINは、エラーメッセージを表示します。列AfricanRecipes.Categoryは集計関数にもGROUP BY句にも含まれていないため、選択リストでは無効です。

2番目のJOINは、エラーメッセージを表示します。

'、'の近くの構文が正しくありません

私は上記の結合で何十ものバリエーションを試しましたが、運がありませんでした。どんな助けでもいただければ幸いです。

4

1 に答える 1

2
SELECT 
    AfricanRatingsAVG.*,
    AfricanRecipes.RecipeID, 
    AfricanRecipes.Category, 
    AfricanRecipes.Name, 
    AfricanRecipes.Description 
FROM (
    SELECT 
       RecipeID, 
       COUNT(*) AS RecipeCount, 
       AVG(Rating) AS RatingAVG 
    FROM AfricanRatings 
    GROUP BY RecipeID 
) AfricanRatingsAVG 
    JOIN AfricanRecipes
        ON AfricanRatingsAVG.RecipeID = AfricanRecipes.RecipeID
于 2013-03-04T22:08:12.857 に答える