Şartlı toplama

Katılım
11 Ocak 2007
Mesajlar
144
Excel Vers. ve Dili
MS Excel-Access 2000
SELECT V347.ÜretimTarihi, Count(V347.HataAdı) AS SayHataAdı, [SayHataAdı]/[topuretimadet]*1000000 AS PPM, V347.HataAdı, (SELECT Sum(V347.ÜretimAdedi) from v347) AS topuretimadet
FROM V347
GROUP BY V347.ÜretimTarihi, V347.HataAdı
HAVING (((V347.HataAdı)=[Hata Adını Giriniz]));


sorgusu var ama "üretimadedi" "üretimtarihi"ne göre hesaplanmıyor. Yani 1. ay 5000 ise 2. ay (5000+2. ay adedi) toplanıyor. Bunun yüzden tarih için de GROUP mu yapmak lazım.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Kod:
select a.tarih, a.hataad&#305;, a.adet, (select sum(adet) where tarih<=a.tarih) as toplam from tabload&#305; as a order by a.tarih
Bu c&#252;mleyle olmas&#305; laz&#305;m tabii siz biraz modifiye ediniz ilgili alanlar&#305; falan eklersiniz..
 
Katılım
11 Ocak 2007
Mesajlar
144
Excel Vers. ve Dili
MS Excel-Access 2000
a.tarih yeni bir tarih alanı mı girmek gerekiyor üstelik mevcut sorgu i.çinde çalışır mı bu.Yani hangi araya girmeli bu sizin yazdığınız.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Siz tarihe g&#246;re toplam almak istemiyor musunuz ? Tarih sizin tablodaki tarih alan&#305;n&#305;n ismi sizde neyse onu yaz&#305;n &#246;rne&#287;in a.benimtarihim gibi
a ise kulland&#305;&#287;&#305;m&#305;z tablonun alias&#305; yani rumuzudur sonuna bak&#305;n "from tabload&#305; as a " &#351;ekilndedir . Alt select ifadesine bak&#305;n "where tarih<=a.tarih " b&#246;ylece de tarihe g&#246;re bir nevi y&#252;r&#252;yen toplam al&#305;nacak. Siz a olay&#305;na tak&#305;ld&#305;n&#305;z san&#305;r&#305;m "a" lar kals&#305;n sadece kendi alanlar&#305;n&#305;z&#305; yaz&#305;p deneyin. Duruma g&#246;re gruplama da yapabilirsiniz.
 
Katılım
11 Ocak 2007
Mesajlar
144
Excel Vers. ve Dili
MS Excel-Access 2000
Anladığım kadarı ile a rumuzu ile sanal bir tablo yaratılıp mevcut ile karşılaştırma yapılıyor.
Ama bu kod işe yaramadı. Ben aslında
1. tarihe göre gruplandırıp (tarihi aynı olanlar da var)
2. o tarihte üretim adedini bulup
3. seçtiğim hata adına göre o hatadan kaç tane çıkmış (parametreli yani)
4. çıkan sayıyı üretim adedine bölmek istiyorum. (bknz kodlar)
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Ben &#246;rne&#287;e bakmay&#305; tercih ederdim ;)
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Do&#287;ru mu anlad&#305;m bilmiyorum ama bir bak&#305;n, v347 sorgusunu a&#351;a&#287;&#305;daki gibi yap&#305;n, &#246;nce bak&#305;n sonra parametre ekleyin.. ;)

Kod:
SELECT a.&#220;retimTarihi, a.HataAd&#305;, Count(a.HataAd&#305;) AS SayHataAd&#305;, [sayHataAd&#305;]/[topuretimadet]*1000000 AS PPM, (SELECT Sum(V347.&#220;retimAdedi) from v347 where &#220;retimTarihi<=a.&#220;retimTarihi and hataad&#305;=a.hataad&#305;  ) AS topuretimadet
FROM V347 AS a
GROUP BY a.&#220;retimTarihi, a.HataAd&#305;
ORDER BY a.&#220;retimTarihi, a.HataAd&#305;;
 
Katılım
11 Ocak 2007
Mesajlar
144
Excel Vers. ve Dili
MS Excel-Access 2000
İki adet sorun var
1. PPM hesaplarken sadece bir tek hataya göre hesaplıyor. Örneğin burda sadece KD ' yi hesaplamış. Çünkü onun bulunduğu satırda üretim adedi var. Halbuki benim paremetre olarak seçeceğim hata adına göre o hatanın PPM'i lazım
2. HAVING ile paremetreli yapayım dedim olmuyor.
 
Katılım
11 Ocak 2007
Mesajlar
144
Excel Vers. ve Dili
MS Excel-Access 2000
tık tık. kimse yok mu ?
 
Üst