sql ile sondan 1 önceki kaydı nasıl listeleyebilirim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

sql ile sondan 1 önceki kaydı nasıl listeleyebilirim

Mesaj gönderen ertline »

Merhaba

malzemelerin satınalma hareketlerine göre bir rapor almak istiyorum, raporda son alınan fiyat ile sondan 1 önceki fiyatı almak istiyorum.

aşağıdaki gibi yapmaya çalıştım fakat doğru sonuç vermedi, yardımcı olursanız sevinirim

SELECT LOGICALREF,VATMATRAH FROM LG_105_01_STLINE ST WHERE ST.LOGICALREF=((select TOP 1 LOGICALREF FROM LG_105_01_STLINE WHERE STOCKREF=14454 AND TRCODE=1 ORDER BY (LOGICALREF) DESC)-1 )
"Bilginin Doruğuna Hep Birlikte..."
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: sql ile sondan 1 önceki kaydı nasıl listeleyebilirim

Mesaj gönderen ertank »

Merhaba,

Bu gibi sorulara cevap verebilmek için öncelike aşağıdaki bilgileri iletmeniz gerekir.
- Veritabanı adı ve sürüm bilgisi
- Sorguya muhatap tablo(lar) yapıları ("create table" DDL bilgisi)
- Muhatap tablo ham örnek verileri (5-10 satır)
- Sorgu sonucunda elde etmek istediğiniz tablo/değer (5-10 satır)

Maalesef sizin verdiğiniz bilgiler ile sorunuza yanıt vermek çok mümkün değil.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: sql ile sondan 1 önceki kaydı nasıl listeleyebilirim

Mesaj gönderen m_ekici »

Merhaba

şunu denermisin

Kod: Tümünü seç

SELECT LOGICALREF,VATMATRAH FROM LG_105_01_STLINE ST 
WHERE ST.STOCKREF=45092 AND ST.TRCODE=1  AND ST.LOGICALREF=
(
SELECT LOGICALREF FROM (select TOP 2 ROW_NUMBER() OVER(ORDER BY LOGICALREF DESC) AS SIRA, LOGICALREF FROM LG_105_01_STLINE WHERE STOCKREF=45092 AND TRCODE=1 ORDER BY LOGICALREF DESC) LIS
WHERE LIS.SIRA=2
)
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Re: sql ile sondan 1 önceki kaydı nasıl listeleyebilirim

Mesaj gönderen ertline »

Merhaba m_ekici hocam,
öncelikle ilginiz için teşekkür ederim,
sorgu STOCKREF teki ilgili stoğun sondan bir önceki VATMATRAH değeri getirdi, tüm liste için nasıl yapabiliriz hocam, yani sadece 45092 id li stok değil tüm stokların sondan bir önceki değerini almak istiyorum

teşekkürler.
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: sql ile sondan 1 önceki kaydı nasıl listeleyebilirim

Mesaj gönderen m_ekici »

Kod: Tümünü seç

SELECT LOGICALREF,STOCKREF, VATMATRAH FROM LG_105_01_STLINE ST 
WHERE ST.TRCODE=1  AND ST.LOGICALREF IN 
(
SELECT LOGICALREF FROM 
(
select ROW_NUMBER() OVER (PARTITION BY STOCKREF ORDER BY LOGICALREF DESC) AS SIRA, STOCKREF, LOGICALREF FROM LG_105_01_STLINE WHERE TRCODE=1 AND STOCKREF>0 
) LIS
WHERE LIS.SIRA=2
)
Cevapla