我有一个像
这样的SQL查询SELECT
GNTD_SCHEDULE_CODE SCHEDULE,
GNTD_PARENT_ACCT PARENT_ACCOUNT,
GNTD_ACCOUNT_CODE ACCOUNT,
GNTD_COMP_CODE,
SUM(CONVERT(FLOAT, ISNULL(GNTD_CUR_MNTH_ACT, 0))) CURR_MONTH_END,
SUM(CONVERT(FLOAT, ISNULL(GNTD_PRV_PRD_ACT, 0))) PREV_MONTH_END,
SUM(CONVERT(FLOAT, ISNULL(GNTD_CUR_YEA_YTD_ACT, 0))) CURR_YEAR_END,
SUM(CONVERT(FLOAT, ISNULL(GNTD_LST_YEA_YTD_ACT, 0))) PRV_YEAR_END
FROM GLAS_NLMR_PROCESSED_DATA
WHERE GNTD_COMP_CODE = '1'
AND GNTD_ACCT_TYPE = 'P' AND
GNTD_DEP_CODE = isnull ( '01' , GNTD_DEP_CODE)
GROUP BY GNTD_COMP_CODE , GNTD_SCHEDULE_CODE , GNTD_PARENT_ACCT , GNTD_ACCOUNT_CODE
HAVING ( SUM ( isnull ( GNTD_CUR_YEA_YTD_ACT , 0)) <> 0) OR ( SUM ( isnull ( GNTD_CUR_MNTH_ACT , 0)) <> 0)
我正在使用asp.net crystal report公式编辑器转换上面的查询,如
{GLAS_NLMR_PROCESSED_DATA.GNTD_COMP_CODE} = {?Company} and
if({?Dept Code})=""
then
{GLAS_NLMR_PROCESSED_DATA.GNTD_DEP_CODE}="01"
else
{GLAS_NLMR_PROCESSED_DATA.GNTD_DEP_CODE} = {?Dept Code} and
我不知道如何在水晶报告中使用分组和声明。
我怎么样?
答案 0 :(得分:1)
您可以通过右键单击并选择插入 - &gt;向报表添加分组。分组,然后选择要分组的字段。重复此过程以添加更多组。
报告中的“拥有”有点棘手。你需要使用抑制公式。在组页脚中创建摘要字段(右键单击,插入 - &gt;摘要,选择字段和'sum'操作)。然后,在专家部分中,添加单击“抑制”按钮并添加如下公式:
WhilePrintingRecords;
Sum({summary_field_name}) = 0;
在组标题,详细信息和组页脚中添加此公式,然后对要实现的每个“having”子句再次执行此操作。
仅供参考 - 使用您已有的查询,可以在数据库中更有效地完成此操作。
修改:更多信息
您不使用公式编辑器来创建摘要字段。使用插入 - &gt;如上所述的摘要创建字段。然后,在“抑制”公式中,从“报告字段”列表中选择新摘要字段。它将被命名为“Sum of”