From b86cb1aa06b38c20745043b15fbebe7b72892806 Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Thu, 6 Jun 2019 07:50:09 +0200 Subject: [PATCH] fix classification-score sql --- process/Classification_lib/process.js | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/process/Classification_lib/process.js b/process/Classification_lib/process.js index a3b74a2a54..e704608103 100644 --- a/process/Classification_lib/process.js +++ b/process/Classification_lib/process.js @@ -1,3 +1,4 @@ +import("system.logging"); import("system.vars"); import("system.db"); import("Sql_lib"); @@ -23,18 +24,15 @@ function ClassificationUtils() {} ClassificationUtils.getScore = function(pClassificationType, pObjectType, pObjectRowid, pClassificationGroup) { var score = db.table(SqlCondition.begin() - .andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP", pClassificationGroup) - .andPrepare("CLASSIFICATIONTYPE.CLASSIFICATIONTYPE", pClassificationType) - .andSqlCondition(SqlCondition.begin().orPrepare("CLASSIFICATION.OBJECT_TYPE", pObjectType) - .or("CLASSIFICATION.OBJECT_TYPE is null")) - .andSqlCondition(SqlCondition.begin().orPrepare("CLASSIFICATION.OBJECT_ROWID", pObjectRowid) - .or("CLASSIFICATION.OBJECT_ROWID is null")) - .buildSql("select CLASSIFICATIONTYPE.CLASSIFICATIONGROUP, case when sum(score) is not null then sum(score) else 0 end from CLASSIFICATIONTYPE \n\ - left join Classification on CLASSIFICATIONTYPE_ID = CLASSIFICATIONTYPEID \n\ - left join CLASSIFICATIONSCORE on CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID", - "1=2", - "group by CLASSIFICATIONTYPE.CLASSIFICATIONGROUP order by CLASSIFICATIONTYPE.CLASSIFICATIONGROUP asc")); - + .andPrepare("CLASSIFICATIONTYPE.CLASSIFICATIONTYPE", pClassificationType) + .andPrepareIfSet("CLASSIFICATIONTYPE.CLASSIFICATIONGROUP", pClassificationGroup) + .buildSql("select CLASSIFICATIONTYPE.CLASSIFICATIONGROUP, case when sum(score) is not null then sum(score) else 0 end from CLASSIFICATIONTYPE " + + db.translateStatement(SqlCondition.begin() + .andPrepare("CLASSIFICATION.OBJECT_TYPE", pObjectType) + .andPrepare("CLASSIFICATION.OBJECT_ROWID", pObjectRowid) + .buildSql("left join CLASSIFICATION on CLASSIFICATIONTYPEID = CLASSIFICATIONTYPE_ID and", "1=2", "", false)) + + "left join CLASSIFICATIONSCORE on CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID", "1=2", + "group by CLASSIFICATIONGROUP order by CLASSIFICATIONGROUP")) var scores = {}; score.forEach(function(pRow) { -- GitLab