1

Konu: nolur yardım edin !!!

--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....

2

Re: nolur yardım edin !!!

SQL
1

2
3
4
5
6
7
8
--ABONE NO AYNI OLAN ABONELERİN LİSTESİ 

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.DocumentId, d.AboneNo
HAVING COUNT(d.tDocumentId)>1
ORDER BY COUNT(d.tDocumentId)
Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

3

Re: nolur yardım edin !!!

cetinbasoz yazdı:
SQL
1

2
3
4
5
6
7
8
--ABONE NO AYNI OLAN ABONELERİN LİSTESİ 

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.DocumentId, d.AboneNo
HAVING COUNT(d.tDocumentId)>1
ORDER BY COUNT(d.tDocumentId)

sorgu hata vermedi ama çalışmadı gene, bom boş kolonlar. sanırım kosul şartı fazla oldu bu seferde.

4

Re: nolur yardım edin !!!

Verinin ornegi filan olsa soyle:

SQL
1

2
declare @TABLE AS TABLE (tDocumentId  int,     AboneNo int)

INSERT INTO @TABLE VALUES (1, 1), (2, 1), (3, 2)


Ona gore ne istiyorsun anlasak.
"Calismadi" ne demek? Hicbir zaman anlayamamisimdir zaten:) Neyse, kolay gelsin sana.

Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

5

Re: nolur yardım edin !!!

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)

kod çalışıyor sorun yok aslında, bana bos değer döndürmesinin sebebi COUNT(d.tDocumentId)>1 den kaynaklanıyor sanırım,   1 den büyük bi değer olmadıgı için bos geliyor haliyle....0 'a yda 1 ' e eşitlediğim zaman veriler geliyor ama benim istediğim şekilde gelmiyor.

peki bunu hiç gruplama yapmadan denesek nasıl olur bana örnek bi kod yazabilirmisiniz acaba?

Son düzenleyen, best-man (03.06.2010 10:36:54)

6

Re: nolur yardım edin !!!

Visual Fox Pro
1

2
3
4
5
select d.AboneNo, 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 having COUNT(d.AboneNo)>1 order by COUNT(d.AboneNo)

sanki kodun böyle olacak gibi. sen idyi neden count yapıyorsun anlamıyorum onlar zaten birtane aboneno birden fazla olabilir onları kount etsen daha uygun anladığım kadarıyla tabiki. Tahminim doğru ise id otomatik sadece dosyada birtne olabilen bir sql seri artış kodu neyse bir count edeceklerini gözden geçir derim

7

Re: nolur yardım edin !!!

sasmazali yazdı:
Visual Fox Pro
1

2
3
4
5
select d.AboneNo, 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 having COUNT(d.AboneNo)>1 order by COUNT(d.AboneNo)

sanki kodun böyle olacak gibi. sen idyi neden count yapıyorsun anlamıyorum onlar zaten birtane aboneno birden fazla olabilir onları kount etsen daha uygun anladığım kadarıyla tabiki. Tahminim doğru ise id otomatik sadece dosyada birtne olabilen bir sql seri artış kodu neyse bir count edeceklerini gözden geçir derim


ya aynı şey temelinde smile    bu şekildede çalışıyor kod.  sorun yokk evt... peki bana şey yapabilirmisin o bulduğu abone numaralarının tDocumentId lerini de yazdırabilirmisin ekrana ?  işte orda sorun var bos geliyor kolonlar.    burdaki COUNT(d.AboneNo)>1  değerinden kaynaklanıyor sanırım...bu rayı 0 yda 1 e eşitlediğim zaman veriler geliyor çalışıyor program ...ama tabi bana 1 den büyük değerler lazm orası ayrı big_smile

8

Re: nolur yardım edin !!!

Visual Fox Pro
1

2
3
4
5
select d.AboneNo, d.tDocumentId 

    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
    order by d.AboneNo, d.tDocumentId

bu şekildede ekrana listeler bilgilerini

9

Re: nolur yardım edin !!!

Turkce soylemeye calisayim. Senin verin neye benziyor? Saymaya calistigin ne? Tahmin oyunu oynatmasan simdiye dek yuz kere cozulurdu.

Son düzenleyen, cetinbasoz (03.06.2010 13:51:06)

Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

10

Re: nolur yardım edin !!!

Bende aynı hatayı yapıyorum.
http://www.fox4um.com/topic/748/foruma- … gondermek/
linkteki gibi örnek data göndermek lazım.

Bilmediğin Neyse Yanıldığındır.