DECLARE @NULLbk UNIQUEIDENTIFIER,
@pk UNIQUEIDENTIFIER,
@bk UNIQUEIDENTIFIER,
@buchungs_nr VARCHAR(10),
@buchungs_datum DATETIME,
@counter INT
-- Dummy PK zur vorübergehenden Nutzung bei Datensätzen die
-- vom Script nicht verarbeitet werden können
SET @NULLbk = 'F4BEBFC7-1CFB-435A-BFA6-55D12132C0BA'
SET @counter = 1
SET @pk = newid()
WHILE @counter <= 100
AND @pk IS NOT NULL
BEGIN
SET @pk = ( SELECT TOP 1 pk
FROM kb
WHERE bk IS NULL )
SELECT @buchungs_nr = buchungs_nr,
@buchungs_datum = buchungs_datum
FROM kb
WHERE pk = @pk
IF @buchungs_nr != ''
AND ( SELECT sum(konto_umsatz_s) - sum(konto_umsatz_h)
FROM ( SELECT buchungs_belegnr,
buchungs_text,
konto_umsatz_s,
konto_umsatz_h
FROM b
WHERE buchungs_nr = @buchungs_nr
AND buchungs_datum = @buchungs_datum
-- ausg. Sammelkonten
AND konto_nr NOT IN ( '1400','1600' ) ) tabelle ) = 0
BEGIN
SET @bk = newid()
END
ELSE
BEGIN
SET @bk = @NULLbk
END
UPDATE kb
SET bk = @bk
WHERE buchungs_nr = @buchungs_nr
AND buchungs_datum = @buchungs_datum
UPDATE lb
SET bk = @bk
WHERE buchungs_nr = @buchungs_nr
AND buchungs_datum = @buchungs_datum
UPDATE sb
SET bk = @bk
WHERE buchungs_nr = @buchungs_nr
AND buchungs_datum = @buchungs_datum
SET @counter = @counter + 1
END