Crystal 报告 - 按国家对城镇进行分组
Crystal report - Group Towns by Countries
我有两张桌子
通过这个查询我得到了结果
select countries.id, countries.name, Towns.id,Towns.TownName
from
Countries
left outer join Towns on countries.id = towns.countryID
现在我想按国家/地区对结果进行分组,以便在我的 CrystalReport
上获得类似的结果。甚至有可能做到吗?
在您提供的示例中,在 Sql 服务器中执行 GROUP BY
是不可取的。 Sql GROUP BY
通常用于投影每个组中列表中的单个标量值,例如
SELECT Countries.Name, Count(Towns.Id) AS NumberOfTowns, Sum(Towns.Population) AS TotalPop
FROM Countries
LEFT OUTER JOIN Towns
ON Countries.Id = Towns.CountryID
GROUP BY Countries.Name;
会给出类似
的结果
Name NumberOfTowns TotalPop
Bosnia 2 123456
England 2 98765
通过将汇总 COUNT
和 SUM
应用于每个国家/地区的所有行(城镇)。
这对您的报告没有用,因为您需要显示每个国家/地区所有城镇的列表。
您想要的是按原样使用当前查询,然后在 Countries.Name
上应用 Crystal Group Header。然后,在 Crystal 中,从“详细信息”部分删除 Countries.Name
字段(因为您不想重复国家/地区)。您可能还希望在组和数据中完成一些排序 - 同样,我建议您在 Crystal 中执行此操作(尽管 ORDER BY Countries.Name, Towns.TownName
也可以)。
然后您将得到一份符合您要求的报告。
我有两张桌子
通过这个查询我得到了结果
select countries.id, countries.name, Towns.id,Towns.TownName
from
Countries
left outer join Towns on countries.id = towns.countryID
现在我想按国家/地区对结果进行分组,以便在我的 CrystalReport
上获得类似的结果。甚至有可能做到吗?
在您提供的示例中,在 Sql 服务器中执行 GROUP BY
是不可取的。 Sql GROUP BY
通常用于投影每个组中列表中的单个标量值,例如
SELECT Countries.Name, Count(Towns.Id) AS NumberOfTowns, Sum(Towns.Population) AS TotalPop
FROM Countries
LEFT OUTER JOIN Towns
ON Countries.Id = Towns.CountryID
GROUP BY Countries.Name;
会给出类似
的结果Name NumberOfTowns TotalPop
Bosnia 2 123456
England 2 98765
通过将汇总 COUNT
和 SUM
应用于每个国家/地区的所有行(城镇)。
这对您的报告没有用,因为您需要显示每个国家/地区所有城镇的列表。
您想要的是按原样使用当前查询,然后在 Countries.Name
上应用 Crystal Group Header。然后,在 Crystal 中,从“详细信息”部分删除 Countries.Name
字段(因为您不想重复国家/地区)。您可能还希望在组和数据中完成一些排序 - 同样,我建议您在 Crystal 中执行此操作(尽管 ORDER BY Countries.Name, Towns.TownName
也可以)。
然后您将得到一份符合您要求的报告。