Hallo,
entweder sehe ich den Wald vor lauter Bäumen nicht
oder ich kapiers einfach nicht:
Ich habe eine Tabelle re_parameter:
Es können zu verschiedenen Zeitpunkten unterschiedliche
Rechnungsparameter gelten, deshalb habe ich mir foilgnde Abfrage
gebastelt:
Tabelle Leistungsplaene ist foreign-key bei re_parameter und
versorgungsmodelle foreign-key bei leistungsplaene.
Jetzt habe ich folgende Eintraege in der Tabelle re_parameter
stehen:
In einer form gibt man ein Datum ein und von diesem Datum wird
immer 24 Monate rückwirkend geschaut in einer Schleife, welche
Rechnungsparameter für dieses Datum gelten. Also immer das
hoechste Datum zum Abfragezeitpunkt.
Komischerweise funktioniert das auch meistens, nur aber bei den
obigen Eintraegen nicht:
Frage ich
ab, so erhalte ich
die beiden Datensaetze aus der Tabelle. Frage ich aber z.B.
ab, erhalte ich als Anzahl 0.
Jetzt habe ich spasseshalber mal die Dateumseintraege in der
Tabelle von 2004-12-31 auf 2005-12-31 geaendert und habe
abgefragt. Und siehe da, ich
erhalte beide Datensaetze aus der Tabelle.
Ich raffe es nicht, es muessten doch entweder bei beiden Abfrage
die Datensaetze rauskommen oder aber bei keiner der Abfragen.
Bitte Leute, helft mir, ich weiss einfach nicht weiter.
Danke euch im Voraus,
Gruss Thomas
entweder sehe ich den Wald vor lauter Bäumen nicht
oder ich kapiers einfach nicht:
Ich habe eine Tabelle re_parameter:
PHP-Code:
CREATE TABLE `re_parameter` (
`rep_id` int(10) unsigned NOT NULL auto_increment,
`unternehmen` enum('1','2V') NOT NULL default 'Auxilion',
`l_id` int(10) unsigned NOT NULL default '0',
`blage` enum('Beguenstigter','Versorgungssumme','Umwandlung','Disagio')
character set latin1 collate latin1_german1_ci NOT NULL default
'Beguenstigter',
`wert` decimal(10,3) unsigned NOT NULL default '0.000',
`re_stellung` enum('monatlich','jaehrlich','einmalig') NOT NULL default 'monatlich',
`datum` date NOT NULL default '0000-00-00',
`dauer` enum('Austritt','Sparen','Leistung') NOT NULL default 'Austritt',
`beginnNach` smallint(3) unsigned NOT NULL default '0',
`rabatt` decimal(7,2) unsigned NOT NULL default '0.00',
PRIMARY KEY (`rep_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Parameter
Rechnungsstellung' AUTO_INCREMENT=167 ;
Rechnungsparameter gelten, deshalb habe ich mir foilgnde Abfrage
gebastelt:
PHP-Code:
$sql="select rep1.*, vm.vzahlweise ";
$sql.="from re_parameter as rep1, leistungsplaene as lp,
versorgungsmodelle as vm where rep1.datum = ";
$sql.="(select max(rep2.datum) from re_parameter as rep2 where
rep2.datum <='$this->aktuell' and rep1.l_id=rep2.l_id) and ";
$sql.="rep1.unternehmen ='1' and rep1.l_id=lp.l_id and
lp.t_id='$_SESSION[t_id]' and lp.v_id=vm.v_id;";
versorgungsmodelle foreign-key bei leistungsplaene.
Jetzt habe ich folgende Eintraege in der Tabelle re_parameter
stehen:
PHP-Code:
INSERT INTO `re_parameter` (`rep_id`, `unternehmen`, `l_id`,
`blage`, `wert`, `re_stellung`, `datum`, `dauer`, `beginnNach`,
`rabatt`) VALUES (165, '1', 47, 'Umwandlung', 5.000, 'monatlich',
'2004-11-01', 'Sparen', 12, 20.00);
INSERT INTO `re_parameter` (`rep_id`, `unternehmen`, `l_id`,
`blage`, `wert`, `re_stellung`, `datum`, `dauer`, `beginnNach`,
`rabatt`) VALUES (166, '1', 72, 'Umwandlung', 5.000, 'monatlich',
'2004-12-01', 'Sparen', 12, 20.00);
immer 24 Monate rückwirkend geschaut in einer Schleife, welche
Rechnungsparameter für dieses Datum gelten. Also immer das
hoechste Datum zum Abfragezeitpunkt.
Komischerweise funktioniert das auch meistens, nur aber bei den
obigen Eintraegen nicht:
Frage ich
PHP-Code:
$this->aktuell=2004-12-31
die beiden Datensaetze aus der Tabelle. Frage ich aber z.B.
PHP-Code:
$this->aktuell=2005-02-01
Jetzt habe ich spasseshalber mal die Dateumseintraege in der
Tabelle von 2004-12-31 auf 2005-12-31 geaendert und habe
PHP-Code:
%this->aktuell=2006-12-31
erhalte beide Datensaetze aus der Tabelle.
Ich raffe es nicht, es muessten doch entweder bei beiden Abfrage
die Datensaetze rauskommen oder aber bei keiner der Abfragen.
Bitte Leute, helft mir, ich weiss einfach nicht weiter.
Danke euch im Voraus,
Gruss Thomas
Kommentar