Termine auswerten

tvtotal

Erfahrenes Mitglied
Hallo,

ich habe eine Tabelle mit Terminen:

Code:
ID | SENDID | DATES | DONE | OPEN |
---|--------|-------|------|------|---
 1 |  ab1   |  xyz  |      |  def |
 2 |  ab2   |  xyz  |      |  def |

Die Termine stehen in den Spalten DATES / DONE / OPEN
für xyz steht z.B. sowas als String drin: 12.07.2013,09.08.2013,22.11.2013,23.12.2013
für def in der Spalte OPEN steht Anfangs dasselbe drin wie für xyz.

Nun soll täglich das Datum überprüft werden und bei Übereinstimmung des Datums mit einem Element aus OPEN(def) soll SENDID ausgegeben werden und gleichzeitig das Datum aus dem String in OPEN gelöscht und in DONE eingetragen werden.

Hoffe, das versteht man.

Schönen Sonntag & Danke

Grüße

tvtotal
 
Hi

würde als Erstes die Tabelle umstrukturieren.
a)
Eine Tabellenzeile pro Datum, nicht mehrere irgendwie reingewurschtelt.
b)
Statt den zwei Spalten Open/Done eine Spalte, in die als Wert 0 oder 1 reinkommt
c)
Weiß ja nicht, was Sendid ist, aber vllt. ist es gar nicht nötig, ID und Sendid beide zu haben?
 
Hallo, das Problem ist, dass ich daran nichts ändern kann. Die einzelnen Dati kommen als kommagetrennte Werte rein. Sendid ist der Bezug zu einer anderen Tabelle.
 
Naja, mein Chef bekommt die Termine so zugesendet und spielt die monatlich über ein SQL-File ein. Wenn ich nun die DB ändere, passt alles nicht mehr. MySQL und PHP stehen zur Verfügung.
 
Auslesen:
SQL:
    select 
      id,
      send_id
    from 
      termine
    where
      dates = open;

Ändern:
SQL:
update 
  termine t
inner join 
   (
    select 
      id,
      open
    from 
      termine
    where
      dates = open
  ) at
on
    t.id = at.id
set
    t.done = at.open,
    t.open = null;

http://www.sqlfiddle.com/#!2/70f7e4/4
 
Zuletzt bearbeitet von einem Moderator:
Zurück