SQL -- Guthabenbeträge werden auf die Rechnungen in Form von Bemerkungen geschrieben. bo: Drop Table tmpBetrag Use Kasse Select replace(cast(sum(Betrag) as Varchar(15)),'.',',') as Betrag, Id as Adressid into bo..tmpBetrag From Konten Group by Id Having sum(Betrag)> 0 -- Fall 1 Kunde hat Guthabenbemerkung -> Guthabenbemerkung löschen ('Ihr Guthaben von xxx Euro wird bei der nächsten Abbuchung berücksichtigt.) Use Bo --Kompletteinträge löschen Delete From b From dBemerkung b _ Where b.Ereignis = 'R' and getdate()<=coalesce(b.Bis,getdate()) _ And charindex('Ihr Guthaben',b.Bemerkung)=1 _ and charindex('berücksichtigt.',b.Bemerkung)+14=len(b.Bemerkung) update b Set b.Bemerkung = Replace(b.Bemerkung,substring(b.Bemerkung,charindex('Ihr Guthaben',b.Bemerkung),charindex('berücksichtigt.',b.Bemerkung)+15-charindex('Ihr Guthaben',b.Bemerkung)),'') _ From dBemerkung b Join tmpBetrag g On b.Adressid = g.Adressid _ Where b.Ereignis = 'R' and getdate()<=coalesce(b.Bis, getdate()) And charindex('Ihr Guthaben',b.Bemerkung)>0 _ And charindex('berücksichtigt.',b.Bemerkung)>0 -- Fall 3 Kunde hat eine Bemerkung -> Bemerkung ergänzen update b Set Bemerkung = Left('Ihr Guthaben von '+Betrag+' Euro wird bei der nächsten Abbuchung berücksichtigt.'+Bemerkung,254) From tmpBetrag g Join dBemerkung b On b.Adressid=g.Adressid where getdate()<=coalesce(b.bis, getdate()) and b.Ereignis = 'R' -- Fall 2 Kunde hat keine Bemerkung -> Bemerkung eintragen Insert into dBemerkung (von,Ereignis,Bestellid,Adressid,Bemerkung) Select datediff(dd,datepart(dw,getdate())-1,getdate()),'R',0,g.Adressid,'Ihr Guthaben von '+Betrag+' Euro wird bei der nächsten Abbuchung berücksichtigt.' From tmpBetrag g Left Join (Select * From dBemerkung where Ereignis ='R' and getdate()<=coalesce(bis, getdate())) b On b.Adressid=g.Adressid where b.Ereignis is null