Skip to main content

AccessTr.neT


kayıtlarda arama yoluyla orantı kurarak hesap yapma

kayıtlarda arama yoluyla orantı kurarak hesap yapma

#1
Merhaba arkadaşlar,
Öncelikle ne yapmak istediğimden bahsedeyim.
Ben zaman zaman bazı kaliteler için muhtelif firmalardan fiyat alıyorum. Ve bir zaman sonra değişen piyasa ortamı nedneiyle fiyatlar yükselip artabiliyor. Dolayısıyla her fiyatı tekrar baştan almam gerekebiliyor. Bunu da oran/orantı yoluyla kısmen de olsa çözebiliyorum.

Bu düzenekte, bir kalite ismim ve ona karşılık gelen kalite kodum var. Bazı hallerde sadece kalite kodu bulunmakla birlikte bazı hallerde de sadece kalite ismim bulunmakta.  Bunlara karşılık gelen tek bir fiyat hanesi mevcut.
Örneğin A kalitesinin kodu 123 fiyatı 10 euro

Şimdi yapmak istediğim şeyi veritabanımdaki verilerden giderek anlatmaya çalışayım.
daha önceleri aşağıda gördüğünüz bu 10 kayda ilişkin fiyat almışım;
   tarih          kalite   kod     fiyat
1 29.12.2015         732    5  EUR
2 01.01.2016 A      123   15 EUR
3 07.01.2016         555   20 EUR
4 10.01.2016 A      123   10 EUR
5 12.01.2016  -      525   20 EUR
6 20.02.2016 B      232   15 EUR
7 22.02.2016 C               20 EUR
8 28.02.2016  -     732   30 EUR
9 01.08.2016  -     525   40 EUR
10 01.09.2016 B   232   30EUR


şimdi A kalitesinden yeniden fiyata ihtiyacım var.
Yapmak istediğim ise A kalitesi için daha önce almış olduğum fiyat bugüne oranlamak.
Bunu yapmak içinse, şimdiye kadar A kalitesi için aldığım fiyatlardan, tarihi bugüne en yakın olanının fiyatını baz alıp, o tarihten 40gün önce ve sonrasında fiyat aldığım bir kalite tespit etmek. Bu öyle bir kalite olmalı ki, hem söylediğim gibi baz aldığım kalitenin tarihinden 40 gün önce veya sonraki zaman diliminde bulunmalı, hem de bir eşinin bugünkü tarihe en yakın kaliteler  arasında ilk sırada olmalı. İşte bu aynı isimli "oran hedefi" şeklinde tanımladığım kalitenin fiyatları arasındaki oranı baz aldığım kalitenin fiyatı ile oranlayacağız.
Yani A 'ya fiyat arıyorsam,öncelikle baz olarak 4. kaydı seçeceğim,çünkü bugünkü tarihe en yakın A kalitesi bu. Oran hedefi olarak 4. kaydın 40 gün yakınında tarihe sahip olan kayıtlardan (525, B,555) ve bir eşinin de bugüne en yakında bulunduğu (9.kayıt) 525 seçiyoruz. Baz olarak aldığımız A ile oran hedefi olarak aldığımız 525'lerin eşlerini birbiriyle oranlayıp çarpıyoruz.  (40/20 = 2 , 2x10 = 20) A'nın yeni fiyatını 20 olarak buluyoruz. 
Hesaplanan bu kaydın t_sonuc tablosuna kalite ismi kodu ve değişken olarak kullanılan tarihlerle birlikte kopyalanmasını istiyorum.
Değişken olarak kullanılan tarihlerden kastım; aynı isimli en yakın bulunan kalitenin tarihinin ilki (10/01/2016) [sonuc_tarihkalite] alanına, baz alınan kriterin tarihinin  (12/01/2016) [sonuc_tarihbaz] alanına,  bugüne en yakın olarak seçilen oran hedefinin ikincisinin tarihi de (01/08/2016)  sonuc_tarihson alanına, oran hedefi olarak alınan kalitenin isminin ve kodunun da [sonuc_bazkalite] [sonuc_bazkod] alanı
larına kopyalanmasını istiyorum. 

Bir de kod isminden yapılacak hesaplama için örnekle açıklayayım.
Kod ismini kriter alarak bir fiyat hesaplamak için yine aynı şekilde;
Örneğin 555 koduna ait fiyat hesaplamak istiyorum. 
Şimdiye kadar alınan fiyatlardan en yakın olarak bulunan 3 nolu kayıt baz olarak alınacak. 
3 nolu kayın 40 gün önce ve sonrasında bulunan kayıtlardan (732, A, 555, 525 ) bugünün tarihine en yakın bir eşi olan (9.kayıt) 525 kaydı oran hedefimiz. Dolayısıyla yine 12/01/2016 tarihli 525 fiyatını , 01.08.2016 tarihli  525 fiyatına oranlıyoruz (40/20=2) baz kalitemiz olan 07.01.2016 tarihli 555 kodlu kalitenin ilk fiyatıyla çarpıyoruz (2x15 =30) 30 hesaplanan fiyatımız oluyor. Yine tarih alanlarını aynı şekilde kopyananmasını istiyorum.
Sonuç tablosunda bu iki hesaplamaya ilişkin şöyle bir görüntü oluşması gerekiyor
A 123  20EUR 10/01/2016 12/01/2016 01/08/2016 - 525
-  555  30EUR 07/01/2016 12/01/2016 01/08/2016 - 525
Son olarak bu yapılan işlemlerin hepsinin sonuc_aramano alanının 1 olduğu varsayılarak yapılacağını, yani oran hedefi olarak seçilen kalitenin (ilk örnekte 525 kodlu kalite , ikinci örnekte B isimli kalite) 1. yakınlıkta olan kalitenin kriter olarak alınarak hesaplanmasını istedim.
Bu değeri 2 olarak değiştirdiğimde en yakın ilk değil ikinci kalite/kod'un oran hedefi alınmasını istiyorum. İlk örnekte A kalitesini ele alırsak 525 kodlu kalite yerine, +- 40 gün içinde yer alan ikinci en yakın kalite olan 1.kayıt 732 kodlu kalitenin oran hedefi olarak alınmasını istiyorum. Aynı şekilde 555 kodlu kalite için sonuc_Aramano=2 olarak yapılan hesaplamada, 525 kalitesi yerine ikinci en yakın orantılanabilecek kalite olan 1.kayıttaki 732 kalitesinin oran hedefi alınmasını istiyorum.
Özetle; eğer sonuc_aramano=2 olursa  A ve  555 kaliteleri için fiyat hesaplama sonuçları şu şekilde olmalı:
A 123  (30/5=6 , 6X10=60) 60EUR 29.12.2015 10.01.2016 30.02.2016 - 732
-  555  (30/5=6 , 6X20=120)120EUR 29.12.2015 07.01.2016 30.02.2016 - 732

Bu sonuc_aramano kriteri 3,4,5 diye gidecek, tıkandığı yerde, yani istediğim orantı hesabını (2 eş bulamayıncaya veya aranan kriterin eşini bulamayıncaya) yapamayacak uzaklık sayısı girildiğinde hata vermesini istiyorum.

Hesaplama yapılacak f_sonuc formum veri tablosu şeklinde. Güncelleştirme sonrasında hesaplama yapılmasını rica ediyorum.

Şimdiden emeğinize sağlık.
İlgilendiğiniz için çok minnettarım.
İyi akşamlar.
.rar fiyatlama2.rar (Dosya Boyutu: 27,48 KB | İndirme Sayısı: 3)
Son Düzenleme: 02/12/2016, 13:42, Düzenleyen: mehmetb84.
Cevapla
#2
Arkadaşlar, fikri olan yok mu?
Son Düzenleme: 25/11/2016, 11:35, Düzenleyen: mehmetb84.
Cevapla
#3
Arkadaşlar, en azından benzer bir örnek söylerseniz yardımcı olabilir.
Cevapla
#4
Çok uzun sorulmuş sorulmuş sorulara ilgi çok daha az olacaktır. Site Kurallarında bahsetmiş olduğumuz gibi sorunuzu basit ve bizlerin anlayacağı şekilde soracak olursanız konunuza çok daha fazla ilgi gösterilecektir.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#5
(16/11/2016 15:56)mehmetb84 Adlı Kullanıcıdan Alıntı: Oran hedefi olarak 4. kaydın 40 gün yakınında tarihe sahip olan kayıtlardan (525, B,555) ve bir eşinin de bugüne en yakında bulunduğu (9.kayıt) 525 seçiyoruz.

Ben buradaki 525,B, 555 olayını anlamadım, 4. kaydın 40 gün öncesi ve 40 sonrasına ait veriler aşağıda,

[Resim: do.php?imgf=148061464867861.png]

Bu güne en yakın kayıtlardan (benim anladığım kadarıyla) eşleşen  20.01.2016 tarihli 232 kodlu veriyi niye seçmedik??
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#6
(01/12/2016 20:52)ozanakkaya Adlı Kullanıcıdan Alıntı:
(16/11/2016 15:56)mehmetb84 Adlı Kullanıcıdan Alıntı: Oran hedefi olarak 4. kaydın 40 gün yakınında tarihe sahip olan kayıtlardan (525, B,555) ve bir eşinin de bugüne en yakında bulunduğu (9.kayıt) 525 seçiyoruz.

Ben buradaki 525,B, 555 olayını anlamadım, 4. kaydın 40 gün öncesi ve 40 sonrasına ait veriler aşağıda,

[Resim: do.php?imgf=148061464867861.png]

Bu güne en yakın kayıtlardan (benim anladığım kadarıyla) eşleşen  20.01.2016 tarihli 232 kodlu veriyi niye seçmedik??

Doğru anlamışsınız Ozan bey, 232'yi seçmememizin nedeni 232 kodlu kaydın tarihi bu anlatımdaki örnekte 20.02.2016 olarak geçiyor olması.Fakat verilerde sizin belirttiğiniz gibi 20/01/2016 olarak geçiyor, düzeltmeyi atlamışım. Dolayısıyla verilerdekine yani sizin eklediğiniz tabloya göre, 232 seçilecek.
Son Düzenleme: 02/12/2016, 02:06, Düzenleyen: mehmetb84.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task