Skip to main content

AccessTr.neT


Sorguda count distinct nasıl yapabilirim?

Sorguda count distinct nasıl yapabilirim?

Çözüldü #1
Merhabalar,

Quary de alt alta gelen mükerrer rakamların count edilmesini yapmak için kullandıgım komut bu "count(distinct Main.FisNo) AS CountOfFisNo INTO gunluk" fakat bir türlü beceremedim. Örnek resim üzerinde anlatmaya calistim yardımcı olursanız sevinirim.

iyi çalışmalar,

Insanlarin birbirini Yanlis Alamalari Icin 9 Ihtimal Vardir.

''Dusundugunuz / Soylemek Istediginiz / Soyledigini Sandiginiz / Soylediginiz / Karsinizdakinin Duymak Istedigi / Duydugu / Anlamak Istedigi / Anladigini sandigi / Anladigi''
Cevapla
Çözüldü #2
sevgili hakan şu şekilde dene

select count(fis) from(select distinct fis from main) as syrup
[Resim: image.php?s=df028e861d094075be82dfc55ca1...1225646923][Resim: mousey.gif]
Cevapla
Çözüldü #3
(17/12/2008, 17:28)syrup yazdı: sevgili hakan şu şekilde dene

select count(fis) from(select distinct fis from main) as syrup

Sayın syrup,

Cevabınız icin teşekkür ederim. ama olmadı.. Ben Sql kodunu komple yazayım, birde o şekilde göz atın belki ben yanlış yapmış olabilirim.

SELECT Main.SatisTarihi, [Magaza Kodlari].Zone, [Magaza Kodlari].Area, [Magaza Kodlari].Shops, Sum(Main.HasilatFisUzerindeki) AS SumOfHasilatFisUzerindeki, Sum(Main.SatisAdedi) AS SumOfSatisAdedi, IIf([Main]![MalKodu]>1000 And [Main]![MalKodu]<9999999,"CIGARETTE"," ") & IIf([Main]![MalKodu]>10000000 And [Main]![MalKodu]<19999999,"SPIRITS"," ") & IIf([Main]![MalKodu]>20000000 And [Main]![MalKodu]<29999999,"CHOCOLATE"," ") & IIf([Main]![MalKodu]>30000000 And [Main]![MalKodu]<39999999,"PERFUME"," ") & IIf([Main]![MalKodu]>40000000 And [Main]![MalKodu]<44999999,"MAKEUP"," ") & IIf([Main]![MalKodu]>45000000 And [Main]![MalKodu]<49999999,"SKINCARE"," ") & IIf([Main]![MalKodu]>50000000 And [Main]![MalKodu]<89999999,"ACCESSORY/TOYS"," ") & IIf([Main]![MalKodu]>90000000 And [Main]![MalKodu]<2900000000,"OTHERS/SOUVENIR"," ") AS [Group], Sum(IIf([Main]![SatisTarihi]>=#1/1/2008# And [Main]![SatisTarihi]<=#12/31/2008#,[Main]![HasilatFisUzerindeki],0)) AS 2008, Sum(IIf([Main]![SatisTarihi]>=#1/1/2007# And [Main]![SatisTarihi]<=#12/31/2007#,[Main]![HasilatFisUzerindeki],0)) AS 2007, count(distinct Main.FisNo) AS CountOfFisNo INTO gunlukFROM ([Magaza Kodlari] INNER JOIN Main ON [Magaza Kodlari].Code = Main.MagazaKodu) LEFT JOIN Milliyettablosu ON Main.MusteriBilgisiMiliyeti = Milliyettablosu.[Musteri No]
GROUP BY Main.SatisTarihi, [Magaza Kodlari].Zone, [Magaza Kodlari].Area, [Magaza Kodlari].Shops, IIf([Main]![MalKodu]>1000 And [Main]![MalKodu]<9999999,"CIGARETTE"," ") & IIf([Main]![MalKodu]>10000000 And [Main]![MalKodu]<19999999,"SPIRITS"," ") & IIf([Main]![MalKodu]>20000000 And [Main]![MalKodu]<29999999,"CHOCOLATE"," ") & IIf([Main]![MalKodu]>30000000 And [Main]![MalKodu]<39999999,"PERFUME"," ") & IIf([Main]![MalKodu]>40000000 And [Main]![MalKodu]<44999999,"MAKEUP"," ") & IIf([Main]![MalKodu]>45000000 And [Main]![MalKodu]<49999999,"SKINCARE"," ") & IIf([Main]![MalKodu]>50000000 And [Main]![MalKodu]<89999999,"ACCESSORY/TOYS"," ") & IIf([Main]![MalKodu]>90000000 And [Main]![MalKodu]<2900000000,"OTHERS/SOUVENIR"," ")
HAVING (((Main.SatisTarihi)>=#1/1/2008# And (Main.SatisTarihi)<=#12/15/2008#)) OR (((Main.SatisTarihi)>=#1/1/2007# And (Main.SatisTarihi)<=#12/15/2007#));

Insanlarin birbirini Yanlis Alamalari Icin 9 Ihtimal Vardir.

''Dusundugunuz / Soylemek Istediginiz / Soyledigini Sandiginiz / Soylediginiz / Karsinizdakinin Duymak Istedigi / Duydugu / Anlamak Istedigi / Anladigini sandigi / Anladigi''
Cevapla
Çözüldü #4
hakan bu sorguda, önceki sorgunun çıkan sonucu baz alınarak gerekli sayıyı alırız.

select count(fis) from (select distinct fis from (SELECT Main.SatisTarihi, [Magaza Kodlari].zone, [Magaza Kodlari].area, [Magaza Kodlari].shops, Sum(Main.HasilatFisUzerindeki) AS SumOfHasilatFisUzerindeki, Sum(Main.SatisAdedi) AS SumOfSatisAdedi, IIf(Main!MalKodu>1000 And Main!MalKodu<9999999,"CIGARETTE"," ") & IIf(Main!MalKodu>10000000 And Main!MalKodu<19999999,"SPIRITS"," ") & IIf(Main!MalKodu>20000000 And Main!MalKodu<29999999,"CHOCOLATE"," ") & IIf(Main!MalKodu>30000000 And Main!MalKodu<39999999,"PERFUME"," ") & IIf(Main!MalKodu>40000000 And Main!MalKodu<44999999,"MAKEUP"," ") & IIf(Main!MalKodu>45000000 And Main!MalKodu<49999999,"SKINCARE"," ") & IIf(Main!MalKodu>50000000 And Main!MalKodu<89999999,"ACCESSORY/TOYS"," ") & IIf(Main!MalKodu>90000000 And Main!MalKodu<2900000000,"OTHERS/SOUVENIR"," ") AS [Group], Sum(IIf(Main!SatisTarihi>=#1/1/2008# And Main!SatisTarihi<=#12/31/2008#,Main!HasilatFisUzerindeki,0)) AS 2008, Sum(IIf(Main!SatisTarihi>=#1/1/2007# And Main!SatisTarihi<=#12/31/2007#,Main!HasilatFisUzerindeki,0)) AS 2007, Main.fis, Main.fisno
FROM ([Magaza Kodlari] INNER JOIN Main ON [Magaza Kodlari].code = Main.MagazaKodu) LEFT JOIN Milliyettablosu ON Main.MusteriBilgisiMiliyeti = Milliyettablosu.[Musteri No]
GROUP BY Main.SatisTarihi, [Magaza Kodlari].zone, [Magaza Kodlari].area, [Magaza Kodlari].shops, IIf(Main!MalKodu>1000 And Main!MalKodu<9999999,"CIGARETTE"," ") & IIf(Main!MalKodu>10000000 And Main!MalKodu<19999999,"SPIRITS"," ") & IIf(Main!MalKodu>20000000 And Main!MalKodu<29999999,"CHOCOLATE"," ") & IIf(Main!MalKodu>30000000 And Main!MalKodu<39999999,"PERFUME"," ") & IIf(Main!MalKodu>40000000 And Main!MalKodu<44999999,"MAKEUP"," ") & IIf(Main!MalKodu>45000000 And Main!MalKodu<49999999,"SKINCARE"," ") & IIf(Main!MalKodu>50000000 And Main!MalKodu<89999999,"ACCESSORY/TOYS"," ") & IIf(Main!MalKodu>90000000 And Main!MalKodu<2900000000,"OTHERS/SOUVENIR"," "), Main.fis, Main.fisno
HAVING (((Main.SatisTarihi)>=#1/1/2008# And (Main.SatisTarihi)<=#12/15/2008#)) OR (((Main.SatisTarihi)>=#1/1/2007# And (Main.SatisTarihi)<=#12/15/2007#))) as syrup) as hakan
[Resim: image.php?s=df028e861d094075be82dfc55ca1...1225646923][Resim: mousey.gif]
Cevapla
Çözüldü #5
Sayın Syrup,

Evime geldim yarın iş yerinden deniyip cvp atacağım. çok teşekkür ederim.

Insanlarin birbirini Yanlis Alamalari Icin 9 Ihtimal Vardir.

''Dusundugunuz / Soylemek Istediginiz / Soyledigini Sandiginiz / Soylediginiz / Karsinizdakinin Duymak Istedigi / Duydugu / Anlamak Istedigi / Anladigini sandigi / Anladigi''
Cevapla
Çözüldü #6
fisno
11
11
588
588
588
588
456
45
456
457
457
457
500
bu şekilde tabloya girilmiş veriyi

bu sorgu
SELECT Tablo1.fisno
FROM Tablo1
GROUP BY Tablo1.fisno
HAVING (((Tablo1.fisno) In (SELECT [fisno] FROM [Tablo1] As Tmp GROUP BY [fisno] HAVING Count(*)>=1 )));


fisno
11
45
456
457
500
588

bu şekilde verir yani her kaydın yalnız birini verir dolayısı ile saymış olursun
meşhur çin atasözü  "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task