Stücklistenauflösung
Raimo
Gesendet: 09.10.13 16:20
Betreff: Stücklistenauflösung


Hallo zusammen,

ich bekomme eine Stücklistenauflösung nach folgendem Schema
ID Level ArtikelNr Auslaufdatum
1 1 Artikel
2 .2 ArtikelX 31-03-11
3 ..3 ArtikelY
4 .2 ArtikelZ
5 ..3 ArtikelZA
6 ...4 ArtikelZB
In diesem Fall wären ID 2 und 3 ungültig, auch wenn dort (in 3) kein
Auslaufdate eingetragen ist. ArtikelZ und dessen Children sind
aber wiederum gültig, weil kein Auslaufdate gesetzt ist.

In DAO würde ich zwei recordsets öffnen, eines läuft eine ID
voran, dann prüfen ob ID2 ungültig ist, das rs weiterlaufen
lassen bis der Level wieder auf 2 ist und dazwischen alles löschen.

Das kann man doch bestimmt im SQL-Server über einen Cursor lösen.
Das wäre allerdings mein erster.
Ich weiß einfach nicht wie ich den zweiten Wert(die nächste ID) mit
dem ersten vergleichen kann, um dann auch noch zu löschen.
Hier mein doch sehr bescheidener erster Ansatz

declare cur cursor for
select id,REPLACE([Level],'.',''),ExpiryDate from dbo.BOM_AllBom ORDER BY ID
open cur
declare @id int
declare @LevelOld int
declare @dtOld varchar(10)
declare @LevelNew int
declare @dtNew varchar(10)
fetch next from cur into @id,@levelOld,@dtOld
while (@@FETCH_STATUS = 0)
begin
print(cast(@id as nvarchar(10))+ ' : '+CAST(@levelOld as varchar(2))+' : '+@dtOld)
[Das print brauche ich nur, um zu prüfen ob das richtige rauskommt]
fetch next from cur into @id,@levelnew,@dtnew

end

close cur
deallocate cur

Wenn es eine einmalige Sache wäre, würde ich das via Access lösen,
aber das soll min. einmal wöchentlich laufen. Es sind übrigens knapp 600.000 Datensätze.
Das Programm selbst ist vb.net, kein Access

Was muss ich hier tun?
Könnt ihr mir hier auf die Sprünge helfen?
Oder kann man sowas mit Ado.net lösen, wobei ich glaube eine SP auf dem Server ist schneller

Danke Raimo
Top of the page Bottom of the page