SQL İçin Yardım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    müstakar
    yarasaadam
    yarasaadam's avatar
    Kayıt Tarihi: 02/Haziran/2011
    Erkek

    Merhaba;

    Elimde hesaplar, bu hesaplara ait gerçek kişiler için TCKN , tüzel kişiler için VKN ler var 

    İstediğim;

    Abonelik sahibinin gerçek kişi olması halinde vefat kaydının bulunup bulunmadığının,

    Abonelik sahibinin tüzel kişi olması halinde ise ilgili VKN'nin aktif/pasif durumunu göstren SQL kodunu nasıl yazabilirim  Bu konuda bana yardımcı olabilirseniz sevinirim 


    Beyninizi işlemci olarak kullanın , harddisk olarak değil :) İnsanlar kitap gibidir azizim , önemli olan cildi değil, içerikleridir Tüm ağı çökertmek , bir insanı hacklemekle başlar
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FrodoTheYuzuksuz
    FrodoTheYuzuksuz's avatar
    Kayıt Tarihi: 17/Ekim/2021
    Erkek

    Database kolonları lazım hocam at yardımcı olalım. İçeriğe gerek yok yada random içerik sallayabilirsin.

     

    Bu arada, vefat kaydı da elinde değil mi db olarak?


    Acı Çekene Saygı
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    müstakar
    yarasaadam
    yarasaadam's avatar
    Kayıt Tarihi: 02/Haziran/2011
    Erkek

    hesap acct_id , tckn, vkn , SA_STATUS_FLG hizmet durumu etkin etkin değil gibi ,

    CMCUSTYP müşteri tipi gibi

     


    Beyninizi işlemci olarak kullanın , harddisk olarak değil :) İnsanlar kitap gibidir azizim , önemli olan cildi değil, içerikleridir Tüm ağı çökertmek , bir insanı hacklemekle başlar
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FrodoTheYuzuksuz
    FrodoTheYuzuksuz's avatar
    Kayıt Tarihi: 17/Ekim/2021
    Erkek

    Vefat bilgisini nereden alıyorsunuz hocam? Ne kadar detay verebilirsen o kadar yardımcı olabilirim.


    Acı Çekene Saygı
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FrodoTheYuzuksuz
    FrodoTheYuzuksuz's avatar
    Kayıt Tarihi: 17/Ekim/2021
    Erkek

    Hocam şöyle bir şey işini görür. Tablo adını bilmediğim için ABONE_TABLOSU yazdım, kendi tablo adınla değiştir:

     
    SELECT
        t.ACCT_ID,
        t.TCKN,
        t.VKN,
        t.SA_TYPE_CD,
        t.MONTH_ID,
        CASE
            WHEN TRIM(t.TCKN) IS NOT NULL THEN 'GERÇEK KİŞİ'
            WHEN TRIM(t.VKN)  IS NOT NULL THEN 'TÜZEL KİŞİ'
            ELSE 'BELİRSİZ'
        END AS KISI_TIPI,
        CASE
            -- Gerçek kişi: vefat kaydı var mı?
            WHEN TRIM(t.TCKN) IS NOT NULL AND UPPER(t.CMSTOPER) = 'PASIF' THEN 'VEFAT KAYDI VAR'
            WHEN TRIM(t.TCKN) IS NOT NULL AND UPPER(t.CMSTOPER) = 'AKTIF' THEN 'VEFAT KAYDI YOK'
            -- Tüzel kişi: VKN aktif mi pasif mi?
            WHEN TRIM(t.VKN)  IS NOT NULL AND UPPER(t.CMSTOPER) = 'AKTIF' THEN 'VKN AKTİF'
            WHEN TRIM(t.VKN)  IS NOT NULL AND UPPER(t.CMSTOPER) = 'PASIF' THEN 'VKN PASİF'
            ELSE 'DURUM BİLİNMİYOR'
        END AS DURUM
    FROM ABONE_TABLOSU t
    WHERE t.SA_TYPE_CD LIKE 'E%'      -- hizmet anlaşması tipi E ile başlayanlar
      AND t.MONTH_ID = 202611;        -- MONTH_ID metinse '202611' yaz

    Birkaç not:

    1. CMSTOPER değerleri: ‘AKTIF’ / ‘PASIF’ diye varsaydım. Gerçekte ‘A’ / ‘P’, ‘VEFAT’ veya Türkçe karakterli (‘AKTİF’) olabilir. Önce şunu çalıştırıp gerçek değerlere bak, CASE’i ona göre düzelt:
     
       SELECT CMSTOPER, COUNT(*) FROM ABONE_TABLOSU GROUP BY CMSTOPER;
    1. Kişi tipi: TCKN/VKN doluluğuna göre ayırdım. CMCUSTYP (müşteri tipi) daha güvenilirse onun değerlerine göre ayırmak daha doğru olur. Mesela CASE WHEN t.CMCUSTYP = 'GERCEK' ....
    2. Sadece etkin hizmetler gerekiyorsa WHERE’e şunu ekle (değerini tablodan kontrol et):
     
       AND t.SA_STATUS_FLG = '20'
    1. Aynı hesap birden fazla satırda geliyorsa (bir hesabın birden çok hizmet anlaşması varsa) SELECT DISTINCT kullan ya da ACCT_ID’ye göre grupla.
    2. Vefat veya VKN durumu ayrı bir tablodaysa ACCT_ID, TCKN ya da VKN üzerinden JOIN gerekir. O zaman o tablonun adını ve kolonlarını at, ona göre düzenleyelim.

     


    Acı Çekene Saygı
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    müstakar
    yarasaadam
    yarasaadam's avatar
    Kayıt Tarihi: 02/Haziran/2011
    Erkek

    teşekkür ederim hocam 


    Beyninizi işlemci olarak kullanın , harddisk olarak değil :) İnsanlar kitap gibidir azizim , önemli olan cildi değil, içerikleridir Tüm ağı çökertmek , bir insanı hacklemekle başlar
Toplam Hit: 81 Toplam Mesaj: 6
sql yardım kod