ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
268
268
EMPFEHLEN
-
Ich soll die Formel für ZÄR in Java programmieren.
In der Beschreibung steht:
die Summe über alle Einträge der Spalte "SHIFT_STD_GB" wo das Feld "WWKTO" nicht leer und in WP_POSITIONEN ist "WWKZH" ist 0 oder 1 minus der Summe über alle Einträge der Spalte "BARWERT_AKT" in "STAT_BARWERTSIMULATION" wo das Feld "WWKTO" nicht leer ist und in "WP_POSITION" ist "WWKZH" '0' oder '1'.
Ich habe bisher folgendes
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
public MahViewReply fillS_ZAER_BB(MahViewReply reply) throws SQLException { StringBuffer queryBarwertAkt = new StringBuffer("SELECT SUM (barwert_akt) FROM rm.STAT_BARWERTSIMULATION s, rm.RISKDATEN r, rm.WP_POSITION w WHERE s.MANDANT_ID = "); PreparedStatement ps = null; ResultSetMetaData rsmt = null; Statement stmt = DBUtil.createStatement(conn); BigDecimal wwkzh = new BigDecimal(0); int werte[] = new int[8]; BigDecimal erg = new BigDecimal(0); BigDecimal barwert = new BigDecimal(0); BigDecimal tmp = new BigDecimal(0); String wwkto = null; // SZAERBB String queryS51 = new String("SELECT wwkto, "+ shiftStdGb +" FROM rm.STAT_BARWERTSIMULATION s, rm.RISKDATEN r WHERE s.wwkto "); try { ps = DBUtil.prepareStatement(conn,queryS51 + " <> '' AND s.mandant_id = " + mandant + " AND s.stichtag = '" + stichtag + "' AND r.inaktiv = 0 AND s.stichtag = r.stichtag AND s.mandant_id = r.mandant_id AND r.risiko_art = 'WP' GROUP BY s.wwkto, " + shiftStdGb); rs = DBUtil.executeQuery(ps); while (rs.next()) { wwkto = rs.getString(1); // alle Ergebnisse auslesen for (int vw = 2 ; vw <= rsmt.getColumnCount(); vw++) { tmp = tmp.add(rs.getBigDecimal(vw)); } } erg = erg.add(tmp); // nun Barwert abfragen queryBarwertAkt.append(mandant + " AND s.STICHTAG = '" + stichtag + "' "); queryBarwertAkt.append(" AND r.INAKTIV = 0 "); queryBarwertAkt.append(" AND r.MANDANT_ID = s.MANDANT_ID "); queryBarwertAkt.append(" AND r.STICHTAG = s.STICHTAG "); queryBarwertAkt.append(" AND r.RISIKO_ART = 'WP' "); queryBarwertAkt.append(" AND w.WWKZH IN ('0', '1') "); queryBarwertAkt.append(" AND s.MANDANT_ID = w.MANDANT_ID "); queryBarwertAkt.append(" AND s.STICHTAG = w.STICHTAG "); ps = DBUtil.prepareStatement(conn, queryBarwertAkt.toString()); rs = DBUtil.executeQuery(ps); if (!rs.next()) { wwkzh = new BigDecimal(9); } else { barwert = rs.getBigDecimal(1); // jetzt geht alles in die DB erg = erg.subtract(barwert); ausgabeSZaerBB.append(" S_ZAER_BB= " + erg); ausgabeSZaerBB.append(" WHERE mandant_id = " + mandant); ausgabeSZaerBB.append(" AND stichtag = '" + stichtag + "'"); LOG.finer("AusgabeSZaerBB= " + ausgabeSZaerBB.toString()); flag = stmt.execute(ausgabeSZaerBB.toString()); } } catch (SQLException e2) { e2.printStackTrace(); LOG.fine("SQLException132 aufgetreten! " + e2); throw e2; } finally { DBUtil.safeClose(rs); DBUtil.safeClose(ps); DBUtil.safeClose(stmt); } if (wwkzh.intValue() < 9) { this.fillBonRiskStd(wwkto, reply); } return reply; }
Das Ergebnis ist kompletter Unsinn, allerdings finde ich nicht heraus wo der Fehler ist.
Falls es wichtig ist, die Datenbank ist eine DB2.
-
28.04.09 13:46 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.885
- Blog-Einträge
- 29
Hallo,
bau doch mal ein kleines Beispiel für die Berechnung anhand von Daten aus einem double[] das kann dann jeder auch nachvollziehen und direkt ausprobieren.
Weiterhin solltest du genauer beschreiben, was schief geht.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Mit schief gehen, meinte ich, es kommt ein Ergebnis mit 12-Stellen vor dem Komma raus.
Mittlerweile bin ich sicher, das es ein reines SQL-Problem ist, darum schreibe ich es mal dort rein.
Ähnliche Themen
-
Neue Version des Java Plugins in Java SE 6 Update N Early Access
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 01.05.08, 13:38 -
java.sun.com Artikel zeigt die neuen Features für Java on the Desktop von Java 6
Von Thomas Darimont im Forum Java Technology NewsAntworten: 1Letzter Beitrag: 17.02.07, 18:39 -
COM4J eine alternative Java - COM Bridge mit Java 5 Mitteln
Von Thomas Darimont im Forum Java Technology NewsAntworten: 0Letzter Beitrag: 10.10.06, 17:49 -
Java is Hot! Java News - Java Polis 2005
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 03.12.05, 16:23 -
Unter Java 5 geschrieben Code auf Java 1.4.X laufen lassen...?!
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 30.12.04, 09:11





Zitieren

Login





