Hi,
ich habe folgende Tabelle
die id ist unique,
das Datum gibt den aktuellen Tag an,
opt, kann die Werte 1, 2, oder 3 annehmen,
value ist ein beliebig großer int
Ich möchte, dass am gleichen Tag (date), die zeile mit dem passenden opt-wert ein update erfährt, wenn valuegrößer ist, als in der Tabelle hinterlegt. Wenn es für den aktuellen Tag keinen datum gibt (wieder in bezug auf den passenden opt-wert), soll er eine neue zeile hinzufügen und als value den vom letzten verfügbaren Tag nehmen, minus 10%. Geht das in einem mySQL Befehl? INSERT ON DUPLICATE KEY wird nicht gehen, weil der Wert auf den es ankommt das datum in zusammenhang mit dem opt-wert ist.
Ist recht komplex, deshalb ein beispiel
Beispiel 1: es ist der 02.01.2017.
Die Werte date=02.01.2017 opt=2 und value=500 werden übergeben
dann soll auf zeile fünf ein update erfolgen und value von 200 auf 500 angehoben werden
Beispiel 2: es ist der 02.01.2017
Die Werte date=02.01.2017 opt=3 und value=4076 werden übergeben
dann soll nichts passieren, weil in zeile 6 value bereits auf 6000 ist und 4076 kleiner ist
Beispiel 3: es ist der 03.01.2017
Die Werte date=03.01.2017 opt=2 und value=300 werden übergeben
dann soll eine neue zeile angelegt werden, da für den 03.01.2017 und opt=2 noch kein eintrag existiert,
id wird wegen auto_increment 7, opt=2 und value 300
Beispiel 4: es ist der 03.01.2017
Die Werte date=03.01.2017 opt=3 und value=4000 werden übergeben
dann soll eine neue zeile angelegt werden, da für den 03.01.2017 und opt=3 noch kein eintrag existiert,
allerdings ist 6000 - 10% 5400 und größer als 4000, daher sollen
id=7, opt=3 und value=5400 angelegt werden
Beispiel 5: es ist der 04.01.2017, am 03.01.2017 hat niemand die Anwendung benutzt
Die Werte date=04.01.2017 opt=3 und value=5300 werden übergeben
dann soll eine neue Zeile angelegt werden, da für den 04.01.2017 und opt=3 noch kein eintrag existiert,
allerdings sind 2 Tage vergangen, d.h. 6000 - 10% - 10% ist 4860 und 5300 ist größer, d.h.
id=7, opt=3 und value=5300
Hat jemand von euch die Fähigkeit, dass in eine Formel zu packen?
ich habe folgende Tabelle
Code:
id (unique, autoincrement), date, opt, value
die id ist unique,
das Datum gibt den aktuellen Tag an,
opt, kann die Werte 1, 2, oder 3 annehmen,
value ist ein beliebig großer int
Ich möchte, dass am gleichen Tag (date), die zeile mit dem passenden opt-wert ein update erfährt, wenn valuegrößer ist, als in der Tabelle hinterlegt. Wenn es für den aktuellen Tag keinen datum gibt (wieder in bezug auf den passenden opt-wert), soll er eine neue zeile hinzufügen und als value den vom letzten verfügbaren Tag nehmen, minus 10%. Geht das in einem mySQL Befehl? INSERT ON DUPLICATE KEY wird nicht gehen, weil der Wert auf den es ankommt das datum in zusammenhang mit dem opt-wert ist.
Ist recht komplex, deshalb ein beispiel
id | date | opt | value |
1 | 01.01.2017 | 1 | 2348 |
2 | 01.01.2017 | 2 | 236 |
3 | 01.01.2017 | 3 | 5492 |
4 | 02.01.2017 | 1 | 2390 |
5 | 02.01.2017 | 2 | 200 |
6 | 02.01.2017 | 3 | 6000 |
Beispiel 1: es ist der 02.01.2017.
Die Werte date=02.01.2017 opt=2 und value=500 werden übergeben
dann soll auf zeile fünf ein update erfolgen und value von 200 auf 500 angehoben werden
Beispiel 2: es ist der 02.01.2017
Die Werte date=02.01.2017 opt=3 und value=4076 werden übergeben
dann soll nichts passieren, weil in zeile 6 value bereits auf 6000 ist und 4076 kleiner ist
Beispiel 3: es ist der 03.01.2017
Die Werte date=03.01.2017 opt=2 und value=300 werden übergeben
dann soll eine neue zeile angelegt werden, da für den 03.01.2017 und opt=2 noch kein eintrag existiert,
id wird wegen auto_increment 7, opt=2 und value 300
Beispiel 4: es ist der 03.01.2017
Die Werte date=03.01.2017 opt=3 und value=4000 werden übergeben
dann soll eine neue zeile angelegt werden, da für den 03.01.2017 und opt=3 noch kein eintrag existiert,
allerdings ist 6000 - 10% 5400 und größer als 4000, daher sollen
id=7, opt=3 und value=5400 angelegt werden
Beispiel 5: es ist der 04.01.2017, am 03.01.2017 hat niemand die Anwendung benutzt
Die Werte date=04.01.2017 opt=3 und value=5300 werden übergeben
dann soll eine neue Zeile angelegt werden, da für den 04.01.2017 und opt=3 noch kein eintrag existiert,
allerdings sind 2 Tage vergangen, d.h. 6000 - 10% - 10% ist 4860 und 5300 ist größer, d.h.
id=7, opt=3 und value=5300
Hat jemand von euch die Fähigkeit, dass in eine Formel zu packen?