• 02-09-2015, 14:59:52
    #1
    Arkadaşlar küçük bir şey yapıyorum fakat sql sorgusu bir türlü düzgün sonuç döndürmüyor. Bu konuda yardımcı olabilir misiniz?

    Küçük bir örnekle açıklayacak olursak:

    Ağustos: Cemal, Kemal, Sercan, Mehmet, Rıfat, Serhat
    Eylül: Cemal, Kemal, Sercan, Mehmet, Rıfat, Serhat
    Ekim: Cemal, Kemal ,Cevdet,Kazım
    Kasım: Kazım


    Bu sistem misal ağustos ayından veri kullanıyor olsun. Ben sistemi kaç farklı kişi kullanmış olarak bakacağımda.
    İçindeki tekrarlı verilerden nasıl kurtulurum SQL içinde. Misal bunların sayılarını almak istersem

    Örneğin: Ağustosta:6 kişi kullanmış
    Eylül:yine aynı kişiler kullandığı için 0 olmalı,
    Ekim: sadece 2 kişi ektradan katılmış: 2 olmalı(Cevdet, kasım)
    Kasımda da 1 kişi kullanmış ama aynı kişi olduğu için 0 olmalı..

    Bu şekilde sqlde nasıl aylık olarak gruplayacağım ve sayısını alacağım. Sürekli tam olarak kişi sayıları dönüyor. Bunu MS SQL'da yapabilmemiz ya da mantığını nasıl yapacağımızı bilen bir arkadaş yardımcı olabilir mi?
  • 05-09-2015, 20:04:12
    #2
    Ağustos ayında ahmet,mehmet,hüseyin kullanmış. (3 kişi kullandı)
    Eylül ayında ahmet,hüseyin kullanmış. (Sorgunda bir önceki aya gidip bakman gerekir daha önce kullanmış mı? kullanmışsa 0 döner kullanmamışsa 2)
  • 06-09-2015, 20:43:13
    #3
    Teşekkürler.
    Bunu SQL içinde döngü ile mi çözmek zorundayız?
  • 06-09-2015, 21:37:42
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Eğer bu işlemi tek sefer yapıp birçok kez aynı sonucu göstereceksen view kullanmanı tavsiye ederim. Geçici (temp) table'lar oluşturarak ilgili kullanıcıları gruplayabilirsin ve her çekimde bir öncekine bakabilirsin. Sql kodunun nasıl olduğunu bilmediğim için sadece temp table yaratman için gereken kod örneğini veriyorum.

    create table #temp_agustos
    {
     id int,
     ay int,
     kullanıcı nvarchar(30) null
    )
    Kod tarafında yapmak istersen de yine aynı şekilde grupladığın veriler üzerinde for/foreach döngüsü ile ilgili kullanıcılar için bir dictionary yaratarak istediğin işlemi yapabilirsin.
  • 11-09-2015, 09:14:43
    #5
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Eğer bu işlemi tek sefer yapıp birçok kez aynı sonucu göstereceksen view kullanmanı tavsiye ederim. Geçici (temp) table'lar oluşturarak ilgili kullanıcıları gruplayabilirsin ve her çekimde bir öncekine bakabilirsin. Sql kodunun nasıl olduğunu bilmediğim için sadece temp table yaratman için gereken kod örneğini veriyorum.

    create table #temp_agustos
    {
     id int,
     ay int,
     kullanıcı nvarchar(30) null
    )
    Kod tarafında yapmak istersen de yine aynı şekilde grupladığın veriler üzerinde for/foreach döngüsü ile ilgili kullanıcılar için bir dictionary yaratarak istediğin işlemi yapabilirsin.

    Tamam. Bilgi için teşekkürler.
  • 21-09-2015, 02:43:01
    #6
    Tablo kolonlarını yazarsan sana direk sql sorgusunu yazabilirim.
  • 21-09-2015, 16:12:30
    #7
    CoderAkademi adlı üyeden alıntı: mesajı görüntüle
    Tablo kolonlarını yazarsan sana direk sql sorgusunu yazabilirim.

    Teşekkürler hocam artık yaptım şu an işimi görüyor ve çalışıyor.