Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 使用Pentaho报表设计器如何在一行中显示数据_Database_Formatting_Reporting_Pentaho - Fatal编程技术网

Database 使用Pentaho报表设计器如何在一行中显示数据

Database 使用Pentaho报表设计器如何在一行中显示数据,database,formatting,reporting,pentaho,Database,Formatting,Reporting,Pentaho,使用Pentaho Report Designer,我希望从数据库中的列中获取数据,并将这些数据显示在一行中 请参见下面的示例。有什么办法可以做到这一点吗 我的数据库表如下所示: GENUS SPECIFIC_EPITHET SPECIES_AUTHOR Asplenium scolopendrium L. Asplenium bradleyi D.C. Eaton Asplenium platyneuron (L.)

使用Pentaho Report Designer,我希望从数据库中的列中获取数据,并将这些数据显示在一行中

请参见下面的示例。有什么办法可以做到这一点吗

我的数据库表如下所示:

GENUS       SPECIFIC_EPITHET    SPECIES_AUTHOR
Asplenium   scolopendrium       L.
Asplenium   bradleyi            D.C. Eaton
Asplenium   platyneuron        (L.) Britton, Sterns & Poggenb.
Asplenium   viride              Huds.
Asplenium scolopendrium L., Asplenium bradleyi D.C. Eaton, Asplenium platyneuron (L.) Britton, Sterns & Poggenb., Asplenium viride Huds.
我希望报告如下所示:

GENUS       SPECIFIC_EPITHET    SPECIES_AUTHOR
Asplenium   scolopendrium       L.
Asplenium   bradleyi            D.C. Eaton
Asplenium   platyneuron        (L.) Britton, Sterns & Poggenb.
Asplenium   viride              Huds.
Asplenium scolopendrium L., Asplenium bradleyi D.C. Eaton, Asplenium platyneuron (L.) Britton, Sterns & Poggenb., Asplenium viride Huds.
我只能让报告以如下所示的列形式显示数据

Asplenium scolopendrium L.
Asplenium bradleyi D.C. Eaton
Asplenium platyneuron (L.) Britton, Sterns & Poggenb.
Asplenium viride Huds.

如果有人告诉我这在珠江三角洲是不可能的,那也会很有帮助。

多亏迪尼卡斯在Pentaho Reporting论坛上向我展示了如何做到这一点

主要的技巧是在我通过PRD将数据输入报告之前查询我的数据库。由于我使用的是POSTGRESQL数据库,因此用于查询数据库的代码如下所示

SELECT
     string_agg(CONCAT(CONCAT(CONCAT(
     c."genus", ' '),
     c."specific_epithet",' '),
     c."species_author"),', ') as scinamewauthor
FROM
     "public"."main_checklist" as c
SELECT
    string_agg (CONCAT(
     (SELECT CASE WHEN s."genus_synonym" IS NULL THEN '' ELSE '<i>'||s."genus_synonym"||'</i>' END),
     (SELECT CASE WHEN s."specific_epithet_synonym" IS NULL THEN '' ELSE ' <i>'||s."specific_epithet_synonym"||'</i>' END),
     (SELECT CASE WHEN s."species_author_synonym" IS NULL THEN '' ELSE ' '||s."species_author_synonym" END),
     (SELECT CASE WHEN s."subspecific_epithet_synonym" IS NULL THEN '' ELSE ' ssp. '||'<i>'||s."subspecific_epithet_synonym"||'</i>'END),
     (SELECT CASE WHEN s."subspecies author_synonym" IS NULL THEN '' ELSE ' '|| s."subspecies author_synonym" END),
     (SELECT CASE WHEN s."varietal_epithet_synonym" IS NULL THEN '' ELSE ' var. <i>'||s."varietal_epithet_synonym"||'</i>'    END),
     (SELECT CASE WHEN s."variety_author_synonym" IS NULL THEN '' ELSE ' '|| s."variety_author_synonym" END),
     (SELECT CASE WHEN s."misapplied" = 'misapplied hybrid formula 1' THEN ' misapplied' ELSE '' END),
     (SELECT CASE WHEN s."hybrid_formula_genus_synonym" is null THEN '' ELSE ' × <i>'||substring("hybrid_formula_genus_synonym" from 1 for 1)||'.</i>'END),
     (SELECT CASE WHEN s."hybrid_formula_specific_epithet_synonym" is null THEN '' ELSE ' <i>'|| s."hybrid_formula_specific_epithet_synonym"||'</i>' END),
     (SELECT CASE WHEN s."hybrid_formula_species_author_synonym" is null THEN '' ELSE ' '||s."hybrid_formula_species_author_synonym" END),
     (SELECT CASE WHEN s."hybrid_formula_subspecific_epithet_synonym" IS NULL THEN '' ELSE ' ssp. <i>'||s."hybrid_formula_subspecific_epithet_synonym"||'</i>' END),
     (SELECT CASE WHEN s."hybrid_formula_subspecies_author_synonym" IS NULL THEN '' ELSE ' '||s."hybrid_formula_subspecies_author_synonym"  END),
     (SELECT CASE WHEN s."hybrid_formula_varietal_epithet_synonym" IS NULL THEN '' ELSE ' var. <i>'||s."hybrid_formula_varietal_epithet_synonym"||'</i>'END),
     (SELECT CASE WHEN s."hybrid_formula_variety_author_synonym" IS NULL THEN '' ELSE ' '||s."hybrid_formula_variety_author_synonym"END),
     (SELECT CASE WHEN s."misapplied" = 'misapplied hybrid formula 2' THEN ' misapplied' ELSE '' END),
     (SELECT CASE WHEN s."genus_hybrid_synonym" IS NULL THEN '' ELSE '×'End),
     (SELECT CASE   WHEN s."hybrid_name_genus_synonym" IS NULL THEN '' 
                WHEN s."genus_synonym" IS NULL THEN '<i>'||s."hybrid_name_genus_synonym"||'</i>' 
                Else ' = <i>'||"hybrid_name_genus_synonym" ||'</i>'END),
     (SELECT CASE   WHEN s."hybrid_name_specific_epithet_synonym" IS NULL THEN '' 
                when s."genus_hybrid_synonym" is null then ' ×<i>'||s."hybrid_name_specific_epithet_synonym"||'</i>' 
                ELSE ' <i>'||s."hybrid_name_specific_epithet_synonym"||'</i>' END),
     (SELECT CASE WHEN s."hybrid_name_species_author_synonym" IS NULL THEN '' ELSE ' '||s."hybrid_name_species_author_synonym" END),
     (SELECT CASE WHEN s."hybrid_name_subspecific_epithet_synonym" IS NULL THEN '' ELSE ' ssp. <i>'||s."hybrid_name_subspecific_epithet_synonym"||'</i>'END),
     (SELECT CASE WHEN s."hybrid_name_subspecies_author_synonym" IS NULL THEN '' ELSE ' '||s."hybrid_name_subspecies_author_synonym"END),
     (SELECT CASE WHEN s."hybrid_name_varietal_epithet_synonym" IS NULL THEN '' ELSE ' var. <i>'||s."hybrid_name_varietal_epithet_synonym"||'</i>'END),
     (SELECT CASE WHEN s."hybrid_name_variety_author_synonym" IS NULL THEN '' ELSE ' 'END),
     s."hybrid_name_variety_author_synonym",
     (SELECT CASE   WHEN (s."misapplied" IS NULL or s."misapplied" = 'misapplied hybrid formula 1' or s."misapplied" = 'misapplied hybrid formula 2') Then '' 
                WHEN s."misapplied" = 'misapplied hybrid name' Then ' misapplied'
                Else ' '||"misapplied" END)),
     ', '
     Order by s."genus_synonym" ASC,
     s."specific_epithet_synonym" ASC,
     s."varietal_epithet_synonym" ASC NULLS FIRST,
     s."subspecific_epithet_synonym" ASC NULLS FIRST,
     s."hybrid_formula_specific_epithet_synonym" ASC,
     s."hybrid_formula_subspecific_epithet_synonym" ASC,
     s."hybrid_formula_varietal_epithet_synonym" ASC,
     s."hybrid_name_specific_epithet_synonym" ASC)as syno


FROM

     "public"."synonyms" as s INNER JOIN "public"."main_checklist" ON s."record_id" = "public"."main_checklist"."record_id"
WHERE
    s."record_id" = ${import_record_id}
我的最终查询实际上要复杂得多,因为我添加了各种各样的空格和html格式标记。整个代码实际上是这样的

SELECT
     string_agg(CONCAT(CONCAT(CONCAT(
     c."genus", ' '),
     c."specific_epithet",' '),
     c."species_author"),', ') as scinamewauthor
FROM
     "public"."main_checklist" as c
SELECT
    string_agg (CONCAT(
     (SELECT CASE WHEN s."genus_synonym" IS NULL THEN '' ELSE '<i>'||s."genus_synonym"||'</i>' END),
     (SELECT CASE WHEN s."specific_epithet_synonym" IS NULL THEN '' ELSE ' <i>'||s."specific_epithet_synonym"||'</i>' END),
     (SELECT CASE WHEN s."species_author_synonym" IS NULL THEN '' ELSE ' '||s."species_author_synonym" END),
     (SELECT CASE WHEN s."subspecific_epithet_synonym" IS NULL THEN '' ELSE ' ssp. '||'<i>'||s."subspecific_epithet_synonym"||'</i>'END),
     (SELECT CASE WHEN s."subspecies author_synonym" IS NULL THEN '' ELSE ' '|| s."subspecies author_synonym" END),
     (SELECT CASE WHEN s."varietal_epithet_synonym" IS NULL THEN '' ELSE ' var. <i>'||s."varietal_epithet_synonym"||'</i>'    END),
     (SELECT CASE WHEN s."variety_author_synonym" IS NULL THEN '' ELSE ' '|| s."variety_author_synonym" END),
     (SELECT CASE WHEN s."misapplied" = 'misapplied hybrid formula 1' THEN ' misapplied' ELSE '' END),
     (SELECT CASE WHEN s."hybrid_formula_genus_synonym" is null THEN '' ELSE ' × <i>'||substring("hybrid_formula_genus_synonym" from 1 for 1)||'.</i>'END),
     (SELECT CASE WHEN s."hybrid_formula_specific_epithet_synonym" is null THEN '' ELSE ' <i>'|| s."hybrid_formula_specific_epithet_synonym"||'</i>' END),
     (SELECT CASE WHEN s."hybrid_formula_species_author_synonym" is null THEN '' ELSE ' '||s."hybrid_formula_species_author_synonym" END),
     (SELECT CASE WHEN s."hybrid_formula_subspecific_epithet_synonym" IS NULL THEN '' ELSE ' ssp. <i>'||s."hybrid_formula_subspecific_epithet_synonym"||'</i>' END),
     (SELECT CASE WHEN s."hybrid_formula_subspecies_author_synonym" IS NULL THEN '' ELSE ' '||s."hybrid_formula_subspecies_author_synonym"  END),
     (SELECT CASE WHEN s."hybrid_formula_varietal_epithet_synonym" IS NULL THEN '' ELSE ' var. <i>'||s."hybrid_formula_varietal_epithet_synonym"||'</i>'END),
     (SELECT CASE WHEN s."hybrid_formula_variety_author_synonym" IS NULL THEN '' ELSE ' '||s."hybrid_formula_variety_author_synonym"END),
     (SELECT CASE WHEN s."misapplied" = 'misapplied hybrid formula 2' THEN ' misapplied' ELSE '' END),
     (SELECT CASE WHEN s."genus_hybrid_synonym" IS NULL THEN '' ELSE '×'End),
     (SELECT CASE   WHEN s."hybrid_name_genus_synonym" IS NULL THEN '' 
                WHEN s."genus_synonym" IS NULL THEN '<i>'||s."hybrid_name_genus_synonym"||'</i>' 
                Else ' = <i>'||"hybrid_name_genus_synonym" ||'</i>'END),
     (SELECT CASE   WHEN s."hybrid_name_specific_epithet_synonym" IS NULL THEN '' 
                when s."genus_hybrid_synonym" is null then ' ×<i>'||s."hybrid_name_specific_epithet_synonym"||'</i>' 
                ELSE ' <i>'||s."hybrid_name_specific_epithet_synonym"||'</i>' END),
     (SELECT CASE WHEN s."hybrid_name_species_author_synonym" IS NULL THEN '' ELSE ' '||s."hybrid_name_species_author_synonym" END),
     (SELECT CASE WHEN s."hybrid_name_subspecific_epithet_synonym" IS NULL THEN '' ELSE ' ssp. <i>'||s."hybrid_name_subspecific_epithet_synonym"||'</i>'END),
     (SELECT CASE WHEN s."hybrid_name_subspecies_author_synonym" IS NULL THEN '' ELSE ' '||s."hybrid_name_subspecies_author_synonym"END),
     (SELECT CASE WHEN s."hybrid_name_varietal_epithet_synonym" IS NULL THEN '' ELSE ' var. <i>'||s."hybrid_name_varietal_epithet_synonym"||'</i>'END),
     (SELECT CASE WHEN s."hybrid_name_variety_author_synonym" IS NULL THEN '' ELSE ' 'END),
     s."hybrid_name_variety_author_synonym",
     (SELECT CASE   WHEN (s."misapplied" IS NULL or s."misapplied" = 'misapplied hybrid formula 1' or s."misapplied" = 'misapplied hybrid formula 2') Then '' 
                WHEN s."misapplied" = 'misapplied hybrid name' Then ' misapplied'
                Else ' '||"misapplied" END)),
     ', '
     Order by s."genus_synonym" ASC,
     s."specific_epithet_synonym" ASC,
     s."varietal_epithet_synonym" ASC NULLS FIRST,
     s."subspecific_epithet_synonym" ASC NULLS FIRST,
     s."hybrid_formula_specific_epithet_synonym" ASC,
     s."hybrid_formula_subspecific_epithet_synonym" ASC,
     s."hybrid_formula_varietal_epithet_synonym" ASC,
     s."hybrid_name_specific_epithet_synonym" ASC)as syno


FROM

     "public"."synonyms" as s INNER JOIN "public"."main_checklist" ON s."record_id" = "public"."main_checklist"."record_id"
WHERE
    s."record_id" = ${import_record_id}

您使用的数据库是什么?我正在使用pgAdmin和PostgreSQL数据库,但我认为这不重要。