16/11/2016, 15:56
mehmetb84
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.
Ö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.