selamlar,

bence veri yapın biraz sorunlu mucip. şu şekilde olsa daha rahat edersin:

yon, giris_adedi, giris_tutari, cikis_adedi, cikis_tutari, adet, tutar

buradaki 3 alan kafa karıştırıcı olabilir --> yon, adet ve tutar

yon --> (boolean bir alan) 0 ise giriş 1 ise çıkıştır
adet ve tutar --> giriş çıkış olduğuna bakmaksızın  hareket değerleridir

bu şekilde bir veri yapısı ile hemen hemen bütün raporlarını standart
sorgularla basitçe elde edebilirsin

giriş işlemlerine dayalı bir rapor mu yapacaksın o zaman giris_ ile
başlayan alanları dikkate alırsın (yon == 0)
çıkış işlemlerine dayalı bir rapor mu yapacaksın o zaman gikis_ ile
başlayan alanları dikkate alırsın (yon == 1)
yön önemli değil mi o zaman da adet ve tutara bakarsın.

ekstra alanların olup verinin biraz fazla olması bugün için bir sıkıntı
değil. bu normalizasyon dışı daha çok performans odaklı bir yaklaşım ve ben
bunun çok faydasını gördüm, tavsiye ederim.




On Mon, Sep 24, 2018 at 11:34 AM Samed YILDIRIM <sa...@reddoc.net> wrote:

> Selamlar Mucip,
>
> Aklıma hızlıca gelen iki çözümü yazayım,
>
> CASE ile;
> select *, case when gc=1 then 'GİRİŞ' when gc=-1 then 'ÇIKIŞ' end as
> hareket_yonu from veri;
>
> CTE ile;
> with k (a,b) as (values (1,'GİRİŞ'),(-1,'ÇIKIŞ')) select id,miktar,gc,b as
> hareket_yonu from veri left join k on veri.gc = k.a;
>
> İstersen view, rule vs. kullanarak da çözüm seçeneklerini bir miktar
> genişletebilirsin. Aynı zamanda ENUM veri tiplerine de bakmanı öneririm.
>
> İyi çalışmalar.
>
>
>
>
>
> İyi çalışmalar.
> Samed YILDIRIM
>
>
>
> 23.09.2018, 13:29, "Dr. Mucibirahman İLBUĞA" <mucip.ilb...@gmail.com>:
>
> Merhabalar,
>
> PostgreSQL kullanıyorum. "giris_cikis" olarak adlandırdığım bir kolon
> var +1 veya -1 oluyor. Anlaşılacağı üzere +1 olduğunda "Giriş", -1
> olduğunda "Çıkış" işlemi yapılıyor...
>
> SELECT ile sorguladığımda her satırda;  +1 olduğunda "Giriş", -1
> olduğunda "Çıkış" olarak görünmesini sağlamak istiyorum.
>
> Şimdi yazarken aklıma geldi. Aslında fonksiyon yazabilirim. Ama bu kadar
> yazmışken sizlerin de yorumunu alayım.  ;-)
>
> --
> Kolay gelsin,
> Mucip:)
>
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>


-- 
İyi çalışmalar...

Mustafa DUMLUPINAR
https://github.com/seyhanp
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Reply via email to