folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder SQL - Stok Farkından Kar Hesaplama



SQL - Stok Farkından Kar Hesaplama

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    selamlar

    elimde bir tablo var, bu tabloda her gün için ürünlerin stok adetleri yazıyor. 

    mesela pazartesi stok 20 ise ve 1 tane satılırsa salı günü stok 19 yazıyor gibi.

    yapmak istediğim her gün için önceki günle stok farkını alıp ürün fiyatıyla çarpıp aynı tabloda bir sütuna yazmak

    bunu sql de yapmam gerek çünkü söz konusu veri bigquery de ve çok büyük, çekip işleyip geri atmak istemiyorum

    denemek için sql fiddle da şema oluşturdum : http://sqlfiddle.com/#!9/14a5000/1

     

     


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Roark
    Roark's avatar
    Kayıt Tarihi: 12/Ağustos/2011
    Erkek

    Yapıyı tam bilmiyorum lakin , datediff ile beraber fark bulunup bu fark ile kar çarpılıp sonuç alınabilir , ya da bir değişken tanımlanır değişkene fark değeri verilip kar oranı ile çarpılabilir. Zaten tablolar ilişkili olduğu için kar oranını diğer tablodan çekip işlem yapılacak tabloda ki fark değişkeni ile çarpılıp tabloya eklenir. Trigger ile beraber de tetiklenebilir diye düşünüyorum. 

    Düzenleme : Kar oranı farklı bir tabloda olabilir diye düşündüm , aynı tablo içerisinde de olabilir tabii ki. 

     

     

     

    Roark tarafından 15/Eki/19 21:00 tarihinde düzenlenmiştir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Yazilimci
    Yazilimci's avatar
    Kayıt Tarihi: 01/Şubat/2014
    Erkek
    yolbulucu bunu yazdı

    selamlar

    elimde bir tablo var, bu tabloda her gün için ürünlerin stok adetleri yazıyor. 

    mesela pazartesi stok 20 ise ve 1 tane satılırsa salı günü stok 19 yazıyor gibi.

    yapmak istediğim her gün için önceki günle stok farkını alıp ürün fiyatıyla çarpıp aynı tabloda bir sütuna yazmak

    bunu sql de yapmam gerek çünkü söz konusu veri bigquery de ve çok büyük, çekip işleyip geri atmak istemiyorum

    denemek için sql fiddle da şema oluşturdum : http://sqlfiddle.com/#!9/14a5000/1

     

     

    sql fiddle da oluşturduğun tablo sistemde veriyi alacağın tablo mu yoksa oluşturmak istediğin tablo mu hocam?


    Titanyumun gücü adına!!!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    Yazilimci bunu yazdı
    yolbulucu bunu yazdı

    selamlar

    elimde bir tablo var, bu tabloda her gün için ürünlerin stok adetleri yazıyor. 

    mesela pazartesi stok 20 ise ve 1 tane satılırsa salı günü stok 19 yazıyor gibi.

    yapmak istediğim her gün için önceki günle stok farkını alıp ürün fiyatıyla çarpıp aynı tabloda bir sütuna yazmak

    bunu sql de yapmam gerek çünkü söz konusu veri bigquery de ve çok büyük, çekip işleyip geri atmak istemiyorum

    denemek için sql fiddle da şema oluşturdum : http://sqlfiddle.com/#!9/14a5000/1

     

     

    sql fiddle da oluşturduğun tablo sistemde veriyi alacağın tablo mu yoksa oluşturmak istediğin tablo mu hocam?

    Aynı tabloya yazicam :) 


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Yazilimci
    Yazilimci's avatar
    Kayıt Tarihi: 01/Şubat/2014
    Erkek
    yolbulucu bunu yazdı
    Yazilimci bunu yazdı
    yolbulucu bunu yazdı

    selamlar

    elimde bir tablo var, bu tabloda her gün için ürünlerin stok adetleri yazıyor. 

    mesela pazartesi stok 20 ise ve 1 tane satılırsa salı günü stok 19 yazıyor gibi.

    yapmak istediğim her gün için önceki günle stok farkını alıp ürün fiyatıyla çarpıp aynı tabloda bir sütuna yazmak

    bunu sql de yapmam gerek çünkü söz konusu veri bigquery de ve çok büyük, çekip işleyip geri atmak istemiyorum

    denemek için sql fiddle da şema oluşturdum : http://sqlfiddle.com/#!9/14a5000/1

     

     

    sql fiddle da oluşturduğun tablo sistemde veriyi alacağın tablo mu yoksa oluşturmak istediğin tablo mu hocam?

    Aynı tabloya yazicam :) 

    hocam hızlıca birşey yaptım ilk aklıma geldiği şekilde. 

    sql fiddle üzerinde schema ya birde bugünü ekledim (Sen sorguda kendine göre ayarlarsın).

    CREATE TABLE `test` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `sku` VARCHAR(255) NOT NULL , `price` DOUBLE NOT NULL , `stock` INT(11) NOT NULL , `revenue` DOUBLE NULL , `date` DATE NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;
    INSERT INTO `test` (`id`, `sku`, `price`, `stock`, `revenue`, `date`) VALUES (NULL, 'a1', '10', '20', NULL, '2019-10-14'), (NULL, 'a1', '10', '19', NULL, '2019-10-15'), (NULL, 'a1', '10', '17', NULL, '2019-10-16');

    Sql koduda

    select
    a.sku,
    ((select stock from test b where b.date=(a.date-1) and b.sku=a.sku)-a.stock)*a.price as rakam
    from test a where a.date=CURDATE()

    Bu şekilde çalıştırdığımda istediğin veri geliyor gibi. Mesai başlangıcındayım acil bu kadar oldu :)

    sqlfiddle: http://sqlfiddle.com/#!9/f1315a/4/0

     

    Yazilimci tarafından 16/Eki/19 08:50 tarihinde düzenlenmiştir

    Titanyumun gücü adına!!!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    select T1.* ,
    ((T2.stock-T1.stock) * T1.price) as FARK
    from test as T1
    left join ( select * from test ) as T2 on (T1.id - 1) = ( T2.id )

     

    Bunu dene hocam


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    select a.sku, a.price, a.name, a.stock as stocka,  b.stock as stockb, a.date as datea, b.date as dateb,(b.stock - a.stock) as diff, (b.stock - a.stock) * a.price as revenue from stock a
    join stock b on a.sku = b.sku and b.date = a.date - 1
    where (b.stock - a.stock) > 0 

    sizin yazdiklarinizdan esinlenip şu şekilde çözdüm, teşekkür ederim :) 


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    yolbulucu bunu yazdı
    select a.sku, a.price, a.name, a.stock as stocka,  b.stock as stockb, a.date as datea, b.date as dateb,(b.stock - a.stock) as diff, (b.stock - a.stock) * a.price as revenue from stock a
    join stock b on a.sku = b.sku and b.date = a.date - 1
    where (b.stock - a.stock) > 0 

    sizin yazdiklarinizdan esinlenip şu şekilde çözdüm, teşekkür ederim :) 

    Sabah aklima geldi diyecektim ki id ile almak problemli cunku fail oldugunda sirayla gitmiyor. Date ile al diyecektim sen zaten almissin. Kolay gelsin


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
Toplam Hit: 1575 Toplam Mesaj: 8
sql