Mysql Update Problem..
TomIRL
- datenbank
Moin,
Folgendes Problem,
Ich habe 2 Tabellen mit folgender Struktur:
Tabelle ARTIKEL
Feldname Typ Standard
REC_ID int(11) Primärschlüssel
VK1 decimal(12,4) 0.0000
VK2-VK5 dito..
GEAEND DATE NULL
USERFELD_01 varchar(255)
Tabelle ARTIKEL_PREIS
Feldname Typ Standard
ARTIKEL_ID int(11) Primärschlüssel
PREIS decimal(12,4) 0.0000
ADRESS_ID int(11)
Folgendes soll nun passieren:
Wenn das Datum in GEAEND nicht älter als 10 Tage ist, soll er den Preis aus VK3 nehmen und in VK1B und VK4B
eintragen.
In VK1 und VK4 wird dann nur die MwSt. rausgerechnet.
Wenn der Preis älter als GEAEND länger als 10 Tage her ist, dann soll er den Preis aus Tabelle ARTIKEL_PREIS nehmen.
Und zwar den Preis der mit der Adress_ID 1 verknüpft ist.
//Aktuelles Datum ermitteln:
$date=date ("Y-m-d");
// Preise eintragen wenn Preis nicht älter als 10 Tage
$sql="UPDATE ARTIKEL
SET
VK1B=VK3,
VK1=VK3*0.86,
VK4B=VK3,
VK4= VK3*0.86,
WHERE GEAEND > DATE_SUB('$date', INTERVAL 10 DAY)
";
$a=update ($db,$sql);
//Preise eintragen wenn der Preis älter als 10 Tage ist
$sql="UPDATE ARTIKEL a, ARTIKEL_PREIS p
SET
a.VK1B=p.Preis*1.16,
a.VK1= p.PREIS,
a.VK4B=p.Preis*1.16,
a.VK4= p.PREIS
WHERE GEAEND < DATE_SUB('$date', INTERVAL 10 DAY)
AND REC_ID=ARTIKEL_ID
AND ADRESS_ID='1'
";
$b=update ($db,$sql);
Nun irgenwie macht er dabei was nicht richtig, und zwar ist nicht in jedem Fall ein Preis für die Adress_ID hinterlegt.
Er passt immer nur die Preise an, für die sowohl eine Adress_id 1 als auch eine Adress_ID 2 hinterlegt ist..
Vielleicht solte man erwähnen, dass.. Die beiden ID stehen für unterschiedliche Lieferanten.. und sind aber mit ein und dem selben Artikel verknüpft.
TomIRL