1

我在我的项目中使用了两个表。两个表都显示在图表中。项目位于 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 回答