Forum
Bildirimler
Hepsini Temizle
SQL Server
1
Yazılar
1
Üyeler
0
Reactions
926
Görüntüleme
Konu başlatıcı
select
[Sayac].ID,
[Sayac].Tarih,
[Sayac].Aktif,
[Sayac].Reaktif,
[Sayac].Kapasitif,
(ISNULL([sec].Aktif, 0) - [Sayac].Aktif)*-1 AktifFark,
(ISNULL([sec].Reaktif, 0) - [Sayac].Reaktif)*-1 ReaktifFark,
(ISNULL([sec].Kapasitif, 0) - [Sayac].Kapasitif)*-1 KapasitifFark,
((ISNULL([sec].Reaktif, 0) - [Sayac].Reaktif)*-1)/((ISNULL([sec].Aktif, 0) - [Sayac].Aktif)*-1) RA_20,
((ISNULL([sec].Kapasitif, 0) - [Sayac].Kapasitif)*-1)/((ISNULL([sec].Aktif, 0) - [Sayac].Aktif)*-1) KA_15
FROM Mars_Onder_Sayac AS [Sayac]
LEFT JOIN Mars_Onder_Sayac AS [sec]
ON [sec].ID = (SELECT max(ID) FROM Mars_Onder_Sayac WHERE ID < [Sayac].ID) and [Sayac].SayacID='1'
Kısaca Özetlemem gerekirse,
ID Sayac Fark
1 100 ---
2 150 50
3 200 50
4 0 200
5 250 250
Sayac farkı hep bir öncekinin farkını alıp hesaplıyor bu aşamaya kadar sorun yok fakat,
eğer ben sayaca 0 girecek olursam doğal olarak bir öncekini 0 alarak hesaplıyor, fakat
0 dan sonra eğer data girersem 50 getirmesi gerekirken bir önce ki değer 200 sonrasın da
da 0 geldiği için 250-0 250 olarak hesaplıyor bu da mantık hatasına sebebiyet veriyor,
bu hatayı nasıl çözebilirim.
Gönderildi : 07/05/2015 19:24