Arama butonu
Bu konudaki kullanıcılar: 1 misafir
7
Cevap
358
Tıklama
0
Öne Çıkarma
iki kayıt arasındaki fark
S
6 yıl
Er
Konu Sahibi

Selam sql de 1 ay içinde 8-10 kayıt var ben bu kayıtların içinde ilk kaydettiğim miktar ile son kaydettiğim miktar arsındaki farkı bulmak istiyorum nasıl bulurum?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



M
6 yıl
Yarbay

ilk kaydettiğin tarihi bir yere yaz veya ona flag ekle kaydedildi diye. o değer ile sonrakileri iki ayrıda sorgu al ve birbirinden cıkar.

tablodaki 1 sırdaki ile son sıradakini almak istiyorsan
ilk kayıt: select * from tablo order by id asc limit 1
son kayit: select * from tablo order by id desc limit 1
hangi kolonu istiyorsan onu al değişkene al ister kod taraında ister sql tarafında farkı al bu.


Bu mesaja 1 cevap geldi.
S
6 yıl
Er
Konu Sahibi

Öncelikle cevabınız için teşekkür ederim. ancak tabloda şöyle bir durum var : diyelimki 10 farklı cari var her bir cari için ve her ay için 10 ar kayıt var mesela . a carisi 1. ay 10 kayıt 2. ay 8 kayıt 3. ay 15 kayıt : BEN A CARİSİ İÇİN 1. AYDAKİ İLK VE SON KAYIT ARASINDAKİ MİKTAR FARKINI BULMAK İSTİYORUM. 2. AY YİNE AYNI ŞEKİLDE

YANİ:

CARİ------AY------FARK MİKTAR
------------------------------
A----------1--------30
A----------2--------45
A----------3--------25
B----------1--------14
B----------2--------18

GİBİ


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @mahoni_38
M
6 yıl
Yarbay

quote:

Orijinalden alıntı: skocabacak

Öncelikle cevabınız için teşekkür ederim. ancak tabloda şöyle bir durum var : diyelimki 10 farklı cari var her bir cari için ve her ay için 10 ar kayıt var mesela . a carisi 1. ay 10 kayıt 2. ay 8 kayıt 3. ay 15 kayıt : BEN A CARİSİ İÇİN 1. AYDAKİ İLK VE SON KAYIT ARASINDAKİ MİKTAR FARKINI BULMAK İSTİYORUM. 2. AY YİNE AYNI ŞEKİLDE

YANİ:

CARİ------AY------FARK MİKTAR
------------------------------
A----------1--------30
A----------2--------45
A----------3--------25
B----------1--------14
B----------2--------18

GİBİ
partition over ile (mysql de karsılığı vardır) bir veya bir kaç alana göre kayıtlarını sıralayabilirsin. Böylece

ARİ------AY------Sira
------------------------------
A----------10--------1
A----------11--------2
A----------12--------3
B----------1--------1
B----------2--------2

gibi bir sıra elde edebilirsin. Bu sana tüm kolonlar dururken gruplama imkanı verir. sonra bu tabloyu sub query içine alıp sira = 1 dediğinde sana ilk ayın verilerini vermiş olur. aynı islemi dersten sıralarsan son ayı verir. iki query birleştirmek de sana kalmış.

http://sqlfiddle.com/#!18/de0cbc/1

Burada örneği var. Bilerek nihayi sonucu vermedim biraz çabalaman ve anlaman için. İhtiyacın iki veriyi birleştirip istediğin cıktıyı üretmek ve bunu sql tarafında yapmak. Ben tam bitmiş halini yaptım buradan yürüyünce istediğin sorgu tek ekranda alınabiliyor

Not: sql sorularını sqlfiddle ile paylaşrsan sema ve örnek veiryi de vermiş olrsun bu ikisi olmdan coğu durumda yardımcı olmak zor.





< Bu mesaj bu kişi tarafından değiştirildi mahoni_38 -- 4 Eylül 2019; 13:48:33 >
Bu mesaja 2 cevap geldi.
S
6 yıl
Er
Konu Sahibi

Baya bir fikir verdi çok teşekkür ederim. Hocam




Bu mesajda bahsedilenler: @mahoni_38
S
6 yıl
Er
Konu Sahibi

Sayın Hocam.
cari_kodu, ay, rapor_kodu1, cari_kodu, ay, rapor_kodu, km_st,
254B0001, 1, 103, 254B0001, 1, 103, 75528,
254B0001 2 201 254B0001 2 201 78640
254B0001 3 302 254B0001 3 302 82127
254B0001 4 401 254B0001 4 401 86652
254B0001 5 503 254B0001 5 503 91575
254B0001 6 601 254B0001 6 601 97059

yukarıdaki tabloda 1. ayın km_st değerini 2. ayın km_st değerinden çıkaracağım 2nin 3 ten 3ün 4 ten ve böyle devam edecek. burada örnek olarak 1 cari verdim çoklu cari olarak düşünün.

Buna nasıl bir sorgu yazabilirim acaba





< Bu mesaj bu kişi tarafından değiştirildi skocabacak -- 5 Eylül 2019; 13:38:8 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @mahoni_38
M
6 yıl
Yarbay

quote:

Orijinalden alıntı: skocabacak

Sayın Hocam.
cari_kodu, ay, rapor_kodu1, cari_kodu, ay, rapor_kodu, km_st,
254B0001, 1, 103, 254B0001, 1, 103, 75528,
254B0001 2 201 254B0001 2 201 78640
254B0001 3 302 254B0001 3 302 82127
254B0001 4 401 254B0001 4 401 86652
254B0001 5 503 254B0001 5 503 91575
254B0001 6 601 254B0001 6 601 97059

yukarıdaki tabloda 1. ayın km_st değerini 2. ayın km_st değerinden çıkaracağım 2nin 3 ten 3ün 4 ten ve böyle devam edecek. burada örnek olarak 1 cari verdim çoklu cari olarak düşünün.

Buna nasıl bir sorgu yazabilirim acaba
bilmiyorum ama tek google sorgusu cevabı veriyor.

how to use values from previous or next rows in a query
https://www.google.com/search?q=how%20to%20use%20values%20from%20previous%20or%20next%20rows%20in%20a%20query
http://www.sqlservertutorial.net/sql-server-window-functions/sql-server-lag-function/

aslında mantık aynı ihtiyac duyduğun sorguyu elindeki ile birleştirmeliyisin


Bu mesaja 1 cevap geldi.
S
6 yıl
Er
Konu Sahibi

Çok teşekkür ederim yine imdadıma yetiştin sağol




Bu mesajda bahsedilenler: @mahoni_38
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.