1

プロジェクトで 2 つのテーブルを使用しています。両方の表を図に示します。プロジェクトは VB.net 2005 および SQL Server 2005 にあります。

スキーマ

これが私のコードです:

SELECT 
    NorthGangotri.DName, NorthGangotri.DLName, NorthGangotri.Place, 
    NorthGangotri.add1 , donor_family_detail.* 
FROM 
    NorthGangotri, donor_family_detail 
WHERE 
    NorthGangotri.NGCode = donor_family_detail.NGCode 
GROUP BY 
    donor_family_detail.NGCode

しかし、実行しようとすると、次のエラーが発生します。

エラー

4

2 に答える 2

2

クエリに Group By 句を追加すると、SELECT リストに特定の制限が適用されます。group by または集計式の一部である列のみを含めることができます。
最初の質問は、そもそもなぜ GROUP BY を使用するのかということです。どの点で結果をグループ化しますか? 次に、グループ化する列を SELECT リストに追加し、必要に応じて集計を追加します。

SELECT donor_family_detail.NGCodeNorthGangotri.DName, COUNT(*)
FROM NorthGangotri, donor_family_detail 
WHERE NorthGangotri.NGCode = donor_family_detail.NGCode 
GROUP BY donor_family_detail.NGCode

これは、NGCode によってグループ化された (結合されたテーブルの) 行数を返します。 GROUP BY
のドキュメントをご覧ください。トピックを理解し、これを解決しようとしている問題に移す際に役立ついくつかの例が含まれています。

于 2013-11-04T10:10:57.913 に答える
1

クエリでデータを集計していないため、おそらくgroup by句を削除する必要があります。

SELECT DISTINCT NorthGangotri.DName, NorthGangotri.DLName, NorthGangotri.Place,
NorthGangotri.add1 , donor_family_detail.* 
FROM NorthGangotri
INNER JOIN donor_family_detail on NorthGangotri.NGCode = donor_family_detail.NGCode 

またjoin、両方のテーブルを接続するために使用する必要があります。

于 2013-11-04T10:03:09.550 に答える