# HG changeset patch # User František Kučera # Date 1234639053 -3600 # Node ID 0e73428ba7b149b8e9dd6f185aa464141b3824b3 # Parent b22c06c8a55cf9b26b07683b5dc638952f9ccde5 Souhrn se počítá za období ne pro jeden den → místo čtyř selektů máme jen dva Ještě je potřeba výsledky agregovat a přidat datum (max) V selektu je „::date“ nutné, protože jinak dojde k SQL výjimce: „function date_trunc(unknown, unknown) is not unique“. viz např. http://archives.postgresql.org/pgsql-jdbc/2006-12/msg00038.php diff -r b22c06c8a55c -r 0e73428ba7b1 java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sat Feb 14 19:31:33 2009 +0100 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sat Feb 14 20:17:33 2009 +0100 @@ -21,10 +21,7 @@ DENNI_SOUHRN, DENNI_SOUHRN_CIL, - SOUHRN_ZA_OBDOBI, - SOUHRN_ZA_OBDOBI_CIL } - private static final long DEN = 1000 * 60 * 60 * 24; /** @@ -45,28 +42,19 @@ ResultSet rs = null; try { if (konec == null) { - if (cil == 0) { - ps = db.prepareStatement(getSQL(SQL.DENNI_SOUHRN)); - ps.setDate(1, zacatek); - } else { - ps = db.prepareStatement(getSQL(SQL.DENNI_SOUHRN_CIL)); - ps.setDate(1, zacatek); - ps.setInt(2, cil); - } + konec = zacatek; + } + + if (cil == 0) { + ps = db.prepareStatement(getSQL(SQL.DENNI_SOUHRN)); + ps.setDate(1, zacatek); + ps.setDate(2, konec); } else { - if (cil == 0) { - ps = db.prepareStatement(getSQL(SQL.SOUHRN_ZA_OBDOBI)); - ps.setDate(1, zacatek); - ps.setDate(2, konec); - } else { - ps = db.prepareStatement(getSQL(SQL.SOUHRN_ZA_OBDOBI_CIL)); - ps.setDate(1, zacatek); - ps.setDate(2, konec); - ps.setInt(3, cil); - } + ps = db.prepareStatement(getSQL(SQL.DENNI_SOUHRN_CIL)); + ps.setDate(1, zacatek); + ps.setDate(2, konec); + ps.setInt(3, cil); } - - rs = ps.executeQuery(); while (rs.next()) { Souhrn s = new Souhrn(); diff -r b22c06c8a55c -r 0e73428ba7b1 java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.sql.xml --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.sql.xml Sat Feb 14 19:31:33 2009 +0100 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.sql.xml Sat Feb 14 20:17:33 2009 +0100 @@ -6,7 +6,8 @@ SELECT * FROM souhrn JOIN cil ON (cil.id = souhrn.cil) - WHERE den = ? + WHERE den >= date_trunc('day', ?::date) + AND den <= date_trunc('day', ?::date) ]]> @@ -14,30 +15,9 @@ SELECT * FROM souhrn JOIN cil ON (cil.id = souhrn.cil) - WHERE den = ? + WHERE den >= date_trunc('day', ?::date) + AND den <= date_trunc('day', ?::date) AND cil = ? ]]> - - - - - - \ No newline at end of file