none
iki farklı sql tablosundan ortalama alma RRS feed

  • Soru

  • merhaba;

    sql server üzerindeki iki tablomdan ortalama almak istiyorum, Planlanan ve Yapılan adından ikitane tablom mevcut bu iki tablomdaki kayıtları hizmet adına göre ortalama almak istiyorum bunu bir sorguyla yapabilirmiyim,

    örneğin

    planlanan tablosunda 100 adet "tadilat" planlanmış, yapılan tabloda ise bu planlanmı tadilatın 25 tanesi yapılmış olsun kalan 75 tadilatın ortalamasını bir labele yazdırmak istiyorum.

    21 Ekim 2020 Çarşamba 19:19

Yanıtlar

  • Yani aslinda sadece "yapilmayan" tadilatlarin X alaninin ortalamasini mi istiyorsunuz?

    Select avg(X)
    from Planlanan p
    where not EXISTS (
       select * 
       from Yapilan y
       where p.TadilatID = y.TadilatID 
    );



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen zynpnvl 22 Ekim 2020 Perşembe 06:27
    21 Ekim 2020 Çarşamba 21:34

Tüm Yanıtlar

  • Yani aslinda sadece "yapilmayan" tadilatlarin X alaninin ortalamasini mi istiyorsunuz?

    Select avg(X)
    from Planlanan p
    where not EXISTS (
       select * 
       from Yapilan y
       where p.TadilatID = y.TadilatID 
    );



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    • Yanıt Olarak İşaretleyen zynpnvl 22 Ekim 2020 Perşembe 06:27
    21 Ekim 2020 Çarşamba 21:34
  • hocam yanıtınız için teşekkür ederim, sizin verdiğiniz komut sadece iki tablodaki kayıtların ortalamasını alıyor, ben iki tablodaki hizmet adı aynı olan tadilatların ortalamasını almak istiyorum, aşağıdaki komut ile sql içerisinde çalıştırdım, sorun yok gibi henüz projemde denemedim ama,

    SELECT YapilanHizmetler.HIZMET_ADI, (select COUNT(PlanlananHizmetler.HIZMET_ADI) FROM PlanlananHizmetler WHERE PlanlananHizmetler.HIZMET_ADI=YapilanHizmetler.HIZMET_ADI) AS YapılanlarıTopladık, (SELECT AVG(SAYI) FROM YapilanHizmetler) AS Ortalama FROM YapilanHizmetler

    • Düzenleyen zynpnvl 22 Ekim 2020 Perşembe 06:46
    22 Ekim 2020 Perşembe 06:31
  • Ben soruyu anlamakta zorlaniyorum. Ornek veri ve sonucta ne istediginiz verirseniz daha iyi anlasilacaktir. Yazdiginiz kod calisiyormus, ama ondan da ne istediginizi anlayamadim (bana pek dogru da gorunmedi).



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    22 Ekim 2020 Perşembe 07:36
  • Hocam yapmak istediğim, aşağıdaki örnek verilerde PlanlananHizmetler tablosunda aynı hizmet adında toplam kaç adet var ve YapılanHizmetler tablosunda kaç tanesi yapılmış, Planlananhizmetler ile yapılanhizmetler aynı hizmet adına göre kaç tane daha yapılacak bunun ortalamasını almak

    PlanlananHizmetler

     

    YapılanHizmetler

    ID

    HIZMET_ADI

    ADET

    ID

    HIZMET_ADI

    ADET

    1

    KONAK

    1

    1

    KONAK

    1

    2

    BAHÇE

    1

    2

    BAHÇE

    1

    3

    KONAK

    1

    4

    KONAK

    1

    Örnek Çıktı;

    KONAK: 2

    BAHÇE: 0

    Planlanan 3 adet konaktan kaç adet yapılmış kalanların ortalaması

    SELECT YapilanHizmetler.HIZMET_ADI, (select COUNT(PlanlananHizmetler.HIZMET_ADI) FROM PlanlananHizmetler WHERE PlanlananHizmetler.HIZMET_ADI=YapilanHizmetler.HIZMET_ADI) AS YapılanlarıTopladık, (SELECT AVG(ADET) FROM YapilanHizmetler) AS Ortalama FROM YapilanHizmetler

    Bu komutun çıktısı;

    hizmet_adi Toplam Ortalama
    KONAK 3 1
    BAHÇE 1 1


    • Düzenleyen zynpnvl 22 Ekim 2020 Perşembe 08:37
    22 Ekim 2020 Perşembe 08:19
  • with p (Hizmet, Toplam) as
    (
       select hizmet_adi, sum(adet)
       from planlanan
       group by hizmet_adi
    ),
    y as (Hizmet, Toplam) as
    (
       select hizmet_adi, sum(adet)
       from yapilan
       group by hizmet_adi
    )
    select p.hizmet, 
           p.Toplam as ToplamPlanan,
           coalesce(y.Toplam, 0) as ToplamYapilan,
           p.Toplam - coalesce(y.Toplam, 0) as Kalan,
           1 as Ortalama
    from p
    left join y on p.Hizmet = y.Hizmet;
    

    Bunu bir deneyiniz. Aslinda istediginiz degil ama ben istediginizi hala anlayamadim. Burada problem su, siz yapilan hizmetlerin ortalamasini aliyorsunuz, ancak adet = 1 oldugundan ortalama daima 1. Tam olarak neyin ortalamasini almak istediginizi gercekten anlamadim, sizin kodunuzda isin o kismi hic filtreleme olmadan sabit. Yani hic bahce yapilmis olmasa da BAHCE icin 1 gelecek. Adet'ler hep bir ise kayitlari bile gereksiz gorunuyor.

    Isterseniz Anydesk, teamviewer, google meet ... gibi bir seyle baglanip biraz daha gercekci verilerle beraber bakalim.



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    22 Ekim 2020 Perşembe 11:12
  • Hocam ilginiz için teşekkür ederim bu istatistiği kullanmaktan vazgeçtik
    22 Ekim 2020 Perşembe 12:35