Sorgu Oluşturmak İçin Yardım

Katılım
2 Ocak 2007
Mesajlar
148
Excel Vers. ve Dili
office xp
Arkadaşlar;
Farklı bir programdan dışarı aktardığım veriyi Access'e tablo olarak aktarıyorum. Bu tabloda çeşitli raporlamalar yapmam lazım. Bu raporlamaları Excelde özet veriler aracılığıyla yapıyorum ama istediğim bunu daha profesyonel halde yapabilmek. Bunun içinde yardımınıza ihtiyacım var.
Bu tablodan öyle sorgu oluşturmalıyımki tek satırda bir çok veriyi alabileyim.
Şimdiden teşekkür ederim....
 

Ekli dosyalar

Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba...

Bu kadar işi tek atışta ;) halletmek için size bir sorgu hazırladım..

Kod:
SELECT Format([Kayıt TArihi],"mmmm yyyy") AS TARİH, trz.[Ilce Kodu], 
(select count(*) from arıza WHERE (((arıza.[Arıza Kodu])=1 Or (arıza.[Arıza Kodu])=5) AND ((Format([Kayıt TArihi],"mmmm yyyy"))=Format(trz.[Kayıt TArihi],"mmmm yyyy")))AND ((([Ilce Kodu])=trz.[Ilce Kodu])) and  ((arıza.[Faaliyet Kdou])="s16" Or (arıza.[Faaliyet Kdou])="d16") ) 
AS [Arıza kodu 1,5 olan ve Faaliyet kodu S16, D16 olanların sayısı], 
(select count(*) from arıza WHERE (((arıza.[Arıza Kodu])=1 Or (arıza.[Arıza Kodu])=5) AND ((Format([Kayıt TArihi],"mmmm yyyy"))=Format(trz.[Kayıt TArihi],"mmmm yyyy")))AND  ((([Ilce Kodu])=trz.[Ilce Kodu])) and ((arıza.[Faaliyet Kdou])="k12" Or (arıza.[Faaliyet Kdou])="k13" Or (arıza.[Faaliyet Kdou])="d19")) 
AS [Arıza kodu 1,5 olan ve Faaliyet kodu K12, K13, D19 olanların sayısı],
 (select count(*) from arıza WHERE (((arıza.[Arıza Kodu])=1 Or (arıza.[Arıza Kodu])=5) AND ((Format([Kayıt TArihi],"mmmm yyyy"))=Format(trz.[Kayıt TArihi],"mmmm yyyy")))AND  ((([Ilce Kodu])=trz.[Ilce Kodu])) and ((arıza.[Faaliyet Kdou])="k12" Or (arıza.[Faaliyet Kdou])="k13" Or (arıza.[Faaliyet Kdou])="d19") and dakika>120) 
AS [120 dakika ve üzerini geçen, Arıza kodu 1,5 olan ve Faaliyet kodu K12, K13, D19 olanların sayısı]
FROM arıza AS trz
GROUP BY Format([Kayıt TArihi],"mmmm yyyy"), trz.[Ilce Kodu];
 

Ekli dosyalar

Katılım
2 Ocak 2007
Mesajlar
148
Excel Vers. ve Dili
office xp
sayın Taruz;
alakanıza teşekkür ederim. Umarım bundan sonrasını ben kendim hallederim. Takıldığım yer olursa yine rahatsız edebilirim. :) ..
 
Katılım
2 Ocak 2007
Mesajlar
148
Excel Vers. ve Dili
office xp
sayın Taruz
sizin yazdığınız koda bakarak;


Bildirilen Arıza Sayısı: (select count(*) from ARIZALAR WHERE (((ARIZALAR.[Ariza Kodu])=1 Or (ARIZALAR.[Ariza Kodu])=2 Or (ARIZALAR.[Ariza Kodu])=5) AND ((Format([Kayit Tarihi],"mmmm yyyy"))=Format(ARIZALARsrg.[Kayit Tarihi],"mmmm yyyy")))AND ((([Ilce Kodu])=ARIZALARsrg.[Ilce Kodu])) and (ARIZALAR.[Faaliyet Kodu])="B01" Or (ARIZALAR.[Faaliyet Kodu])="D16" Or (ARIZALAR.[Faaliyet Kodu])="D17" Or (ARIZALAR.[Faaliyet Kodu])="D18" Or (ARIZALAR.[Faaliyet Kodu])="D19" Or (ARIZALAR.[Faaliyet Kodu])="D27" Or (ARIZALAR.[Faaliyet Kodu])="B02" Or (ARIZALAR.[Faaliyet Kodu])="B03" Or (ARIZALAR.[Faaliyet Kodu])="B04" Or (ARIZALAR.[Faaliyet Kodu])="S16" Or (ARIZALAR.[Faaliyet Kodu])="D11" Or (ARIZALAR.[Faaliyet Kodu])="S13" Or (ARIZALAR.[Faaliyet Kodu])="S14" Or (ARIZALAR.[Faaliyet Kodu])="S17" Or (ARIZALAR.[Faaliyet Kodu])="Y01" Or (ARIZALAR.[Faaliyet Kodu])="Y02" Or (ARIZALAR.[Faaliyet Kodu])="Y03" Or (ARIZALAR.[Faaliyet Kodu])="Y04" Or (ARIZALAR.[Faaliyet Kodu])="Y05" Or (ARIZALAR.[Faaliyet Kodu])="D26" Or (ARIZALAR.[Faaliyet Kodu])="S11" Or (ARIZALAR.[Faaliyet Kodu])="S12" Or (ARIZALAR.[Faaliyet Kodu])="S15" Or (ARIZALAR.[Faaliyet Kodu])="S21" Or (ARIZALAR.[Faaliyet Kodu])="S22" Or (ARIZALAR.[Faaliyet Kodu])="S23" Or (ARIZALAR.[Faaliyet Kodu])="S24") )


diye bir kod yazdım. bu kodu accesse yapıştırıken "metin düzenlenemeyecek kadar uzun" diye mesaj verdi. bunun üzerine bende




Bildirilen Arıza Sayısı1 (select count(*) from ARIZALAR WHERE (((ARIZALAR.[Ariza Kodu])=1 Or (ARIZALAR.[Ariza Kodu])=2 Or (ARIZALAR.[Ariza Kodu])=5) AND ((Format([Kayit Tarihi],"mmmm yyyy"))=Format(ARIZALARsrg.[Kayit Tarihi],"mmmm yyyy")))AND ((([Ilce Kodu])=ARIZALARsrg.[Ilce Kodu])) and (ARIZALAR.[Faaliyet Kodu])="B01" Or (ARIZALAR.[Faaliyet Kodu])="D16" Or (ARIZALAR.[Faaliyet Kodu])="D17" Or (ARIZALAR.[Faaliyet Kodu])="D18" Or (ARIZALAR.[Faaliyet Kodu])="D19" Or (ARIZALAR.[Faaliyet Kodu])="D27" Or (ARIZALAR.[Faaliyet Kodu])="B02" ))



ve



Bildirilen Arıza Sayısı: (select count(*) from ARIZALAR WHERE (((ARIZALAR.[Ariza Kodu])=1Or(ARIZALAR.[Ariza Kodu])=2Or(ARIZALAR.[Ariza Kodu])=5) AND ((Format([Kayit Tarihi],"mmmm yyyy"))=Format(ARIZALARsrg.[Kayit Tarihi],"mmmm yyyy")))AND ((([Ilce Kodu])=ARIZALARsrg.[Ilce Kodu])) and (ARIZALAR.[Faaliyet Kodu])="B03"Or(ARIZALAR.[Faaliyet Kodu])="B04"Or(ARIZALAR.[Faaliyet Kodu])="S16"Or(ARIZALAR.[Faaliyet Kodu])="D11"Or(ARIZALAR.[Faaliyet Kodu])="S13"Or(ARIZALAR.[Faaliyet Kodu])="S14"Or(ARIZALAR.[Faaliyet Kodu])="S17"Or(ARIZALAR.[Faaliyet Kodu])="Y01"Or(ARIZALAR.[Faaliyet Kodu])="Y02"Or(ARIZALAR.[Faaliyet Kodu])="Y03"Or(ARIZALAR.[Faaliyet Kodu])="Y04"Or(ARIZALAR.[Faaliyet Kodu])="Y05"Or(ARIZALAR.[Faaliyet Kodu])="D26"Or(ARIZALAR.[Faaliyet Kodu])="S11"Or(ARIZALAR.[Faaliyet Kodu])="S12"Or(ARIZALAR.[Faaliyet Kodu])="S15"Or(ARIZALAR.[Faaliyet Kodu])="S21"Or(ARIZALAR.[Faaliyet Kodu])="S22"Or(ARIZALAR.[Faaliyet Kodu])="S23"Or(ARIZALAR.[Faaliyet Kodu])="S24") )


diye iki ayrı koda ayırdım ve yapıştırdım. şimdide çıkan değerler her satırda aynı çıkıyor.
birde bu iki kodu yapıştırırken "girdiğiniz ifadede çok fazla kapama ayracı var" uyarısı çıktı ve bende en sondaki parantezi sildim. acaba her satırda aynı değer çıkması parantezlerden mi kaynaklandı? bu parantezlerin mantığı nedir?
 
Katılım
2 Ocak 2007
Mesajlar
148
Excel Vers. ve Dili
office xp
Sayın Taruz
aynı değeri verme sorununu çözdüm.
"metin düzenlenemeyecek kadar uzun" mesajını çözemedim.
birde bu kod ile count yani saydırma yapıyoruz, peki toplama yapmamda gerekicek onu nasıl çözerim? count yerine sum yazdım olmadı....
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Bu kadar ölçütlü sorgu yapmanız sıkıntı zaten.. İstediğiniz veriyi sağlayacak başka bir sorgu oluşturup bunu kullandığınız ana sorgunuza çağırmayı deneyin..
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Aşağıdaki kodu modül sayfası açııp yapıştırın.
Function b(a)

If a = "B03" Then
b = True
ElseIf a = "B04" Then b = True
ElseIf a = "S16" Then b = True
ElseIf a = "D11" Then b = True
ElseIf a = "S13" Then b = True
ElseIf a = "S14" Then b = True
ElseIf a = "S17" Then b = True
ElseIf a = "Y01" Then b = True
ElseIf a = "Y02" Then b = True
ElseIf a = "Y03" Then b = True
ElseIf a = "Y04" Then b = True
ElseIf a = "Y05" Then b = True
ElseIf a = "D26" Then b = True
ElseIf a = "S11" Then b = True
ElseIf a = "S12" Then b = True
ElseIf a = "S15" Then b = True
ElseIf a = "S21" Then b = True
ElseIf a = "S22" Then b = True
ElseIf a = "S23" Then b = True
ElseIf a = "S24" Then b = True
End If
End Function
Aşağıdaki ikiye böldüğünü yazdığınız 2. bölümün sonundaki SQL kodu yerine
(ARIZALAR.[Faaliyet Kodu])="B03"Or(ARIZALAR.[Faaliyet Kodu])="B04"Or(ARIZALAR.[Faaliyet Kodu])="S16"Or(ARIZALAR.[Faaliyet Kodu])="D11"Or(ARIZALAR.[Faaliyet Kodu])="S13"Or(ARIZALAR.[Faaliyet Kodu])="S14"Or(ARIZALAR.[Faaliyet Kodu])="S17"Or(ARIZALAR.[Faaliyet Kodu])="Y01"Or(ARIZALAR.[Faaliyet Kodu])="Y02"Or(ARIZALAR.[Faaliyet Kodu])="Y03"Or(ARIZALAR.[Faaliyet Kodu])="Y04"Or(ARIZALAR.[Faaliyet Kodu])="Y05"Or(ARIZALAR.[Faaliyet Kodu])="D26"Or(ARIZALAR.[Faaliyet Kodu])="S11"Or(ARIZALAR.[Faaliyet Kodu])="S12"Or(ARIZALAR.[Faaliyet Kodu])="S15"Or(ARIZALAR.[Faaliyet Kodu])="S21"Or(ARIZALAR.[Faaliyet Kodu])="S22"Or(ARIZALAR.[Faaliyet Kodu])="S23"Or(ARIZALAR.[Faaliyet Kodu])="S24") )

şeklindeki kodu aşağıdaki gibi değiştirin
b(ARIZALAR.[Faaliyet Kodu]=True
 
Katılım
2 Ocak 2007
Mesajlar
148
Excel Vers. ve Dili
office xp
sayın omerceri;
yardımınız için teşekkür ederim.
bir sorunum daha var. sorgudaki satırların sutun, sutunlarında satır olmasını istiyorum. yani raporumda böyle gözüksün. bunu nasıl yaparım?
 
Katılım
2 Ocak 2007
Mesajlar
148
Excel Vers. ve Dili
office xp
sorgudaki satırların sutun, sutunlarında satır olmasını istiyorum. yani raporumda böyle gözüksün. bunu nasıl yaparım?
 
Üst