Konu: Select Bottom 1 from stok..stem -- bottom yok
SQLde SELECT bottom olmadığını yeni farkettim. Yapmak istediğim devirin en yeni tarihlisini stok dosyasına işlemek.
kullandığım komut:
UPDATE stk..stok
SET stok.stokta=(SELECT top 1 devir FROM stk..stem WITH (INDEX ( stok_tarih_gir1çik2 )) WHERE stem.stokod=@stokod)
WHERE stok.stokod=@stokod
Soru: WITH (INDEX ( stok_tarih_gir1çik2 )) DESC şeklinde hazır indeksi terse çeviren komut var mı.
Yoksa yeni index mi yaratayım.
-----
aşağıda bütün SQL kodları - ilk kayıtları çok güzel buluyor, ama gereken her stoğun son kaydı
DECLARE @adet INT --Overall running total
SET @adet = 0
DECLARE @stokod INT --The "anchor" and "account change detector"
DECLARE contact_cursor CURSOR FOR
SELECT stokod FROM stk..stok
OPEN contact_cursor;
FETCH NEXT FROM contact_cursor INTO @stokod; -- Perform the first fetch.
-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE stk..stem
SET @adet = devir = @adet + (miktar ),
@stokod = stem.stokod
FROM stk..stem WITH (INDEX ( stok_tarih_gir1çik2))
WHERE stem.stokod=@stokod
OPTION (FORCE ORDER)
UPDATE stk..stok
SET stok.stokta=(SELECT top 1 devir FROM stk..stem WITH (INDEX ( stok_tarih_gir1çik2 )) WHERE stem.stokod=@stokod)
WHERE stok.stokod=@stokod
-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM contact_cursor INTO @stokod ;
END
CLOSE contact_cursor;