AccessTr.neT

Tam Versiyon: Puan Durumu Yapmak
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Merhaba,
Access 2000 kullanıyorum ve maalesef kod yazmayı bilmiyorum.Ekte ki örnek db de görüleceği üzere takımların sezonlara göre puan durumlarını görmek istiyorum.

ekte sadece bir takımınkini koydum,çünkü toplamda 35.000 den fazla kayıt var.Bunu kodsuz querylerle yapabildiğim için çalıştırdığımda program kilitleniyor.Sorularım şöyle


  1. Sezon değişince puan durumlarının sıfırlanmasını istiyorum.ekteki örnekte 15.maçta sezon değişiyor ama puan durumu 15 den itibaren devam ediyor,yeni sezonda sıfırlanması gerek.
  2. Bunu nasıl benim yolumla kodsuz sadece query kullanarak yapabileceğim.Belki benim yöntemim yanlış ve o yüzden kilitleniyor(dediğim gibi kodsuz sadece query ile çok çok uzun sürecek belli)
  3. Eğer query ile olamıyorsa bunun macrosu konusunda yardım edebilirmisiniz?
Yardımlarınız için şimdiden teşekkürler
1 - "puan durumu sıfırlansın" derken tam olarak kas ettiğiniz ne? hangi alanlar boşaltılacak yada hangi değerlere güncellenecek
2 - sadece 2 sezon olacak değil mi? tabloda geçmiş yıllara ait kayıtlar olduğundan emin olamadım bir kaç yıllık bir dönemi mi kapsıyor sadece 59-60 yılı dönemi tek mi?
Bu arada mümkünse tabloya 2. bir takımı daha ekler misiniz? oluşturulacak sorgu hem takıma hem de sezona göre işlem göreceğinden doğru çalışıp çalışmadığını anlamak için gerekli bence
Ben örnek olması için sadece 1959 ve 1959-60 sezonunda ligde mücadele eden Adalet takımını göstermiştim.Çünkü dediğim gibi 61 sezonda toplam 69 farklı takım mücadele etmiş ve dolayısı ile 17.592 maç yapılmış.Kalan 68 takımda olacak.Örnek olması için ekteki db ye 1 takım  daha ekledim.

1.sorunuzun cevabı ekteki exceldedir,açıklamaya çalıştım,
2.si ilk sezon 1959 son sezon ise şimdilik 2018-19 arada 61 sezon var ,ve daha da artacak.
sorgunuzun kaynağını aşağıdaki kodla değiştirip dener misiniz?
dilerim işinize yarar
Kod:
SELECT [PD-TAKIM-HAFTA].SNO, [PD-TAKIM-HAFTA].ATRM, [PD-TAKIM-HAFTA].TARIH, [PD-TAKIM-HAFTA].SEZONK, [PD-TAKIM-HAFTA].TADI1, [PD-TAKIM-HAFTA].S1, [PD-TAKIM-HAFTA].TADI2, [PD-TAKIM-HAFTA].S2,
iif([ATRM]<>dlookup("ATRM","PD-TAKIM-HAFTA","SNO=" & [SNO]-1) or [SEZONK]<>dlookup("SEZONK","PD-TAKIM-HAFTA","SNO=" & [SNO]-1), [G], DSum("G","PD-TAKIM-HAFTA","ATRM='" & [atrm] & "' and SEZONK='" & [SEZONK] & "' and SNO<=" & [SNO])) AS G1,
iif([ATRM]<>dlookup("ATRM","PD-TAKIM-HAFTA","SNO=" & [SNO]-1) or [SEZONK]<>dlookup("SEZONK","PD-TAKIM-HAFTA","SNO=" & [SNO]-1), , DSum("b","PD-TAKIM-HAFTA","ATRM='" & [atrm] & "' and SEZONK='" & [SEZONK] & "' and SNO<=" & [SNO])) AS b1,
iif([ATRM]<>dlookup("ATRM","PD-TAKIM-HAFTA","SNO=" & [SNO]-1) or [SEZONK]<>dlookup("SEZONK","PD-TAKIM-HAFTA","SNO=" & [SNO]-1), [m], DSum("m","PD-TAKIM-HAFTA","ATRM='" & [atrm] & "' and SEZONK='" & [SEZONK] & "' and SNO<=" & [SNO])) AS m1,
iif([ATRM]<>dlookup("ATRM","PD-TAKIM-HAFTA","SNO=" & [SNO]-1) or [SEZONK]<>dlookup("SEZONK","PD-TAKIM-HAFTA","SNO=" & [SNO]-1), [a], DSum("a","PD-TAKIM-HAFTA","ATRM='" & [atrm] & "' and SEZONK='" & [SEZONK] & "' and SNO<=" & [SNO])) AS a1,
iif([ATRM]<>dlookup("ATRM","PD-TAKIM-HAFTA","SNO=" & [SNO]-1) or [SEZONK]<>dlookup("SEZONK","PD-TAKIM-HAFTA","SNO=" & [SNO]-1), [y], DSum("y","PD-TAKIM-HAFTA","ATRM='" & [atrm] & "' and SEZONK='" & [SEZONK] & "' and SNO<=" & [SNO])) AS y1,
[PD-TAKIM-HAFTA].O, [PD-TAKIM-HAFTA].G, [PD-TAKIM-HAFTA].B, [PD-TAKIM-HAFTA].M, [PD-TAKIM-HAFTA].A, [PD-TAKIM-HAFTA].Y INTO [PD-TAKIM-HAFTA-2]
FROM [PD-TAKIM-HAFTA]
ORDER BY [PD-TAKIM-HAFTA].TARIH;
Sanırım  oldu,teşekkür ederim
bu arada bence "group by"a gerek yok,
ama şöyle bir sorun çıkabilir eğer bir kaydı silip diyelim ki sno=5 sildiniz hatalı diye yada bir maçı atlamışsınız yeni bir kayıt eklemek istediniz araya, yeni kaydın sno'u çok büyük bir değer olacaktır ve sizin kurduğunuz sno ya bağlı sistem hatalı sonuç üretebilecektir. O nedenle o durumları da göz önünde bulundurmalısınız
örnek çalışma ektedir dilerim işinize yarar[attachment=30445]