Skip to content

Commit e0dfcbf

Browse files
committed
fixed issue with grouping on mysql. issue #2744
1 parent 37283ba commit e0dfcbf

File tree

1 file changed

+21
-20
lines changed
  • j-lawyer-server/j-lawyer-server-ejb/src/java/com/jdimension/jlawyer/services

1 file changed

+21
-20
lines changed

j-lawyer-server/j-lawyer-server-ejb/src/java/com/jdimension/jlawyer/services/ReportService.java

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -992,28 +992,29 @@ public ReportResult invokeReport(String reportId, Object... params) throws Excep
992992
result.getTables().add(getTable(true, "Offene Zeiterfassungsprojekte", query, params));
993993
} else if (Reports.RPT_TSHEETS_VALUES.equals(reportId)) {
994994
String query = "SELECT "
995-
+ "DATE_FORMAT(tsp.time_stopped, '%Y-%m') AS Monat, "
996-
+ "CONCAT(tsp.principal, ', ', DATE_FORMAT(tsp.time_stopped, '%Y-%m')) AS MitarbeiterMonat, "
997-
+ "tsp.principal AS Mitarbeiter, "
998-
+ "SUM((GREATEST(1, CEILING(TIMESTAMPDIFF(MINUTE, tsp.time_started, tsp.time_stopped) / ts.interval_minutes)) * ts.interval_minutes DIV 1) / 60 * tsp.unit_price) AS UmsatzNetto "
999-
+ "FROM timesheet_positions tsp "
1000-
+ "LEFT JOIN timesheets ts ON ts.id = tsp.timesheet_id "
1001-
+ "WHERE tsp.time_stopped >= ? "
1002-
+ "AND tsp.time_stopped <= ? "
1003-
+ "GROUP BY Monat, Mitarbeiter "
1004-
+ "ORDER BY Monat ASC, Mitarbeiter ASC";
995+
+ "DATE_FORMAT(tsp.time_stopped, '%Y-%m') AS Monat, "
996+
+ "CONCAT(tsp.principal, ', ', DATE_FORMAT(MIN(tsp.time_stopped), '%Y-%m')) AS MitarbeiterMonat, "
997+
+ "tsp.principal AS Mitarbeiter, "
998+
+ "SUM((GREATEST(1, CEILING(TIMESTAMPDIFF(MINUTE, tsp.time_started, tsp.time_stopped) / ts.interval_minutes)) * ts.interval_minutes DIV 1) / 60 * tsp.unit_price) AS UmsatzNetto "
999+
+ "FROM timesheet_positions tsp "
1000+
+ "LEFT JOIN timesheets ts ON ts.id = tsp.timesheet_id "
1001+
+ "WHERE tsp.time_stopped >= ? "
1002+
+ "AND tsp.time_stopped <= ? "
1003+
+ "GROUP BY Monat, Mitarbeiter "
1004+
+ "ORDER BY Monat ASC, Mitarbeiter ASC";
1005+
10051006
result.getTables().add(getTable(false, "Gebuchte Zeiten pro Mitarbeiter und Monat", query, params));
10061007
String query2 = "SELECT "
1007-
+ "DATE_FORMAT(tsp.time_stopped, '%Y') AS Jahr, "
1008-
+ "CONCAT(tsp.principal, ', ', DATE_FORMAT(tsp.time_stopped, '%Y')) AS MitarbeiterJahr, "
1009-
+ "tsp.principal AS Mitarbeiter, "
1010-
+ "SUM((GREATEST(1, CEILING(TIMESTAMPDIFF(MINUTE, tsp.time_started, tsp.time_stopped) / ts.interval_minutes)) * ts.interval_minutes DIV 1) / 60 * tsp.unit_price) AS UmsatzNetto "
1011-
+ "FROM timesheet_positions tsp "
1012-
+ "LEFT JOIN timesheets ts ON ts.id = tsp.timesheet_id "
1013-
+ "WHERE tsp.time_stopped >= ? "
1014-
+ "AND tsp.time_stopped <= ? "
1015-
+ "GROUP BY Jahr, Mitarbeiter "
1016-
+ "ORDER BY Jahr ASC, Mitarbeiter ASC";
1008+
+ "DATE_FORMAT(tsp.time_stopped, '%Y') AS Jahr, "
1009+
+ "CONCAT(tsp.principal, ', ', DATE_FORMAT(MIN(tsp.time_stopped), '%Y')) AS MitarbeiterJahr, "
1010+
+ "tsp.principal AS Mitarbeiter, "
1011+
+ "SUM((GREATEST(1, CEILING(TIMESTAMPDIFF(MINUTE, tsp.time_started, tsp.time_stopped) / ts.interval_minutes)) * ts.interval_minutes DIV 1) / 60 * tsp.unit_price) AS UmsatzNetto "
1012+
+ "FROM timesheet_positions tsp "
1013+
+ "LEFT JOIN timesheets ts ON ts.id = tsp.timesheet_id "
1014+
+ "WHERE tsp.time_stopped >= ? "
1015+
+ "AND tsp.time_stopped <= ? "
1016+
+ "GROUP BY Jahr, Mitarbeiter "
1017+
+ "ORDER BY Jahr ASC, Mitarbeiter ASC";
10171018
result.getTables().add(getTable(false, "Gebuchte Zeiten pro Mitarbeiter und Jahr", query2, params));
10181019
} else if (Reports.RPT_TSHEETS_OPEN_POSITIONS.equals(reportId)) {
10191020
String query = "SELECT cases.id, cases.fileNumber as Aktenzeichen, cases.name as Rubrum, cases.reason as wegen, \n"

0 commit comments

Comments
 (0)