İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

nolur yardım edin !!!

best-man

0
İyinet Üyesi
Katılım
24 Şubat 2008
Mesajlar
14
Reaction score
0
--ABONE NO AYNI OLAN ABONELERİN LİSTESİ

select d.AboneNo, COUNT(d.tDocumentId) as 'Adet'
from tBatch as b
inner join tDocument as d on d.tBatchId =b.tBatchId

where ISNULL(b.Deleted,0)=0 and ISNULL(d.Deleted,0)=0
group by d.AboneNo having COUNT(d.tDocumentId)>1 order by COUNT(d.tDocumentId)

arkadaslar yukarıdaki kodu sağlıklı bir şekilde çalıştırıyorum orda bi sıkıntm yok. fakat ekrana abone numaralarının yanına tdocumentıd lerinide yazdırmak istiyorum ama yazdıramıyorum , bana yardımcı olabilirmisiniz acaba ?

ekrana gelen şekil :
----------------------------------------------
AboneNo Adet
-----------------------
323232 2
656565 2
212121 3
656565 2



gelmesi gereken şekil(istediğim ekran) :
----------------------------------------------
tDocumentId AboneNo Adet
------------------------------------------
12345 323232 2
34567 656565 2
89745 212121 3
99988 656565 2
bu şekilde ekrana gelmesini istiyorum ,teşekkürler....
 

superweb

0
İyinet Üyesi
Katılım
29 Mart 2010
Mesajlar
332
Reaction score
9
Konum
İstanbul
sorgunuzun başını
select d.AboneNo,d.tDocumentId,COUNT(d.tDocumentId) as 'Adet'
şeklinde değiştirebilirsiniz. d.AboneNo'ya göre grupladığınız için d.AboneNo'ya ait 1 tane d.tDocumentId görebilirsiniz. d.AboneNo'ya ait tüm d.tDocumentId'leri görmek istiyorsanız gruplamaktan vazgeçmeniz gerekir. Bu durumda Adet'i yazılım diliniz ile bulmanız gerekir. (php,asp vs.)
 

best-man

0
İyinet Üyesi
Katılım
24 Şubat 2008
Mesajlar
14
Reaction score
0
sorgunuzun başını
select d.AboneNo,d.tDocumentId,COUNT(d.tDocumentId) as 'Adet'
şeklinde değiştirebilirsiniz. d.AboneNo'ya göre grupladığınız için d.AboneNo'ya ait 1 tane d.tDocumentId görebilirsiniz. d.AboneNo'ya ait tüm d.tDocumentId'leri görmek istiyorsanız gruplamaktan vazgeçmeniz gerekir. Bu durumda Adet'i yazılım diliniz ile bulmanız gerekir. (php,asp vs.)

Kod:
select d.tDocumentId ,d.AboneNo, COUNT(d.tDocumentId) as 'Adet'  
    from tBatch as b 
    
       inner join tDocument as d on d.tBatchId = b.tBatchId    
       
        
where ISNULL(b.Deleted,0)=0 and ISNULL(d.Deleted,0)=0

group by d.tDocumentId, d.AboneNo having COUNT(d.tDocumentId)>1 order by COUNT(d.tDocumentId)

bu şekilde yazdım hata vermedi ama bombos bi ekran geldi. kolonlar bos hiç bi veriyi getirmedi. Acaba nedn çalışmıyor sizce?
 

superweb

0
İyinet Üyesi
Katılım
29 Mart 2010
Mesajlar
332
Reaction score
9
Konum
İstanbul
MSSQL server kullanıyorsunuz sanırım. MSSQL konusunda çok bilgim yok. Sorgu sonucu boş geliyor çünkü having COUNT(d.tDocumentId)>1 ifadesini sağlayan bilgi yok. Şöyle bir dener misiniz ? group by d.tDocumentId, d.AboneNo yerine group by d.AboneNo,d.tDocumentId
 

best-man

0
İyinet Üyesi
Katılım
24 Şubat 2008
Mesajlar
14
Reaction score
0
Kod:
select d.AboneNo, d.tDocumentId, COUNT(d.tDocumentId) as 'Adet'  
    from tBatch as b 
    
       inner join tDocument as d on d.tBatchId = b.tBatchId    
       
        
where ISNULL(b.Deleted,0)=0 and ISNULL(d.Deleted,0)=0

group by d.AboneNo, d.tDocumentId having COUNT(d.tDocumentId)>1 order by COUNT(d.tDocumentId)

bu şekilde denedim gene boş geldi.... peki sizinde dediğiniz gibi gruplamadan yapsak bu işi nasıl olur , bana örnek bi kod yazabilirmisiniz mümkünse?
 

superweb

0
İyinet Üyesi
Katılım
29 Mart 2010
Mesajlar
332
Reaction score
9
Konum
İstanbul
Gruplamadan yapmanızı d.AboneNo'ya ait tüm d.tDocumentId'leri istiyorsanız yapabilirsiniz demiştim. Hangi dilde örnek kod işinizi görür? Ayrıca tablolarınız ne kadar büyük? Eğer çok kayıt var ise gruplamadan script dili ile yapmak hantallığa sebep olacaktır. Ayrıca MSSQL server ise prosedür de yazabilirsiniz. Script dilinden daha hızlı olacaktır. Bana öyle geliyor ki ufak bir mantık hatası yapıyorsunuz o nedenle sonuç alamıyorsunuz. Biraz deneme yanılma da yapabilirsiniz. Mesela having COUNT(d.tDocumentId)>1 ifadesini kaldırın ne oluyor? Nasıl bir sonuç geliyor?
 

best-man

0
İyinet Üyesi
Katılım
24 Şubat 2008
Mesajlar
14
Reaction score
0
sizinde dediğiniz gibi ufacık bi mantık hatam var sanırım bi türlü çıkamadım işn içinden :d

bakın ben size en sade halini yazıyım şimdi birazcık daha rahat anlicaksınız istediğim şeyi

select d.AboneNo,d.tDocumentId, COUNT(d.AboneNo) as 'Adet'
from tBatch as b
inner join tDocument as d on d.tBatchId =b.tBatchId
where ISNULL(b.Deleted,0)=0 and ISNULL(d.Deleted,0)=0
group by d.AboneNo,d.tDocumentId having COUNT(d.AboneNo)>1 order by COUNT(d.AboneNo)


bu kodda çalışıyor temelde. bunda da kolonlar bos geliyor. sebebide su sanırım : COUNT(d.AboneNo)>1 1 den büyük değer yok ondan bos geliyor. burayı 0 yada 1 e eşitlediğim zaman program çalışıyor. ama bana işte 1 den büyük olan değerler lazım. yani bi abone numarası başka nerde kullanılıyo bana bunun sayısını vermesi lazım. umarım derdimi anlatabilmişimdir :d
 

best-man

0
İyinet Üyesi
Katılım
24 Şubat 2008
Mesajlar
14
Reaction score
0
tDocumentId AboneNo Adet
------------------------------------------
12345 323232 2
34567 656565 2
89745 212121 3
99988 656565 2

ekrana bu şekilde çıktı vermesi lazım işte , bende burdan tDocumentId kolonunu kople kopyalayıp programdan daha rahat bi şekilde islemlerimi yapabilicem. bana bu lazım...
 

superweb

0
İyinet Üyesi
Katılım
29 Mart 2010
Mesajlar
332
Reaction score
9
Konum
İstanbul
İlk mesajınızda COUNT(d.tDocumentId) as 'Adet' idi 12:18'de yazdığınız mesajınızda COUNT(d.AboneNo) as 'Adet' olmuş. Hangi sütununuz tekil hangi sütununuz çoğul? Çoğulun count'unu alıp tekili group'un peşisırasına yazmanız gerekiyor. Biraz karışık anlatmış olabilirim kusura bakmayın. 2 tablonuzdan da biraz örnek kayıt yazıp almak istediğiniz sonucu ona göre yazarsanız sevinirim.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

seo ajansı , sosyal medya yönetimi
Üst