• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Ş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.
 
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..
 
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.
 
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.
 
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)
 
Ben &#246;rne&#287;e bakmay&#305; tercih ederdim ;)
 
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;;
 
İ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.
 
tık tık. kimse yok mu ?
 
Geri
Üst