Skip to main content

AccessTr.neT


Belirli Bir Değere Göre Tarih Arasını Alma

Belirli Bir Değere Göre Tarih Arasını Alma

Çözüldü #1
Merhaba Arkadaşlar,

Yapmak istediğim şey tam olarak TABLO1 'de bulunan 15 koduna göre TARIH kısmını TABLO2 'de arayıp TABLO1 'de ki tarihden önce kaçtane veri olduğu ve sonra kaçtane veri olduğu sayısını almak ve bu aldığım sayının karşısına TABLO2 'deki süreleri toplamak bu konuda yardımcı olabilir misiniz ?

Teşekkürler.
.rar Tarih Say.rar (Dosya Boyutu: 23,7 KB | İndirme Sayısı: 8)
Cevapla
#2
aşağıdaki kodu dener misiniz?
SELECT TABLO1.KOD, Sum(Once.SURE)/3 AS Once, Sum(Sonra.SURE)/3 AS Sonra
FROM TABLO2 AS Sonra INNER JOIN (TABLO1 INNER JOIN TABLO2 AS Once ON TABLO1.KOD = Once.KOD) ON Sonra.KOD = TABLO1.KOD
WHERE (((Sonra.TARIH)>[TABLO1]![TARIH]) AND ((Once.TARIH)<[TABLO1]![TARIH]))
GROUP BY TABLO1.KOD;
Not: eşit olması durumunu belirtmemiş olduğunuzdan sadece büyük ve küçükler alındı, eşitler hesaba katılmadı.
Cevapla
#3
Berduş hocam sizin dosyada tablo2 deki 5.satırdaki 15 i 16 yapınca sonuç yanlış çıkıyor.

Alternatif olarak ekledim biraz uzun oldu galiba Img-grin

[Resim: do.php?img=11111]
https://resim.accesstr.net/do.php?img=11111


SELECT t2.KOD, 
(select  SUM(t2.SURE)  from TABLO1 as t1  LEFT JOIN TABLO2 as t2 ON t2.TARIH< t1.TARIH and t2.KOD= t1.KOD ) AS önceki,
(select  SUM(t2.SURE)  from TABLO1 as t1  LEFT JOIN TABLO2 as t2 ON t2.TARIH> t1.TARIH and t2.KOD= t1.KOD) AS sonraki
FROM TABLO1 AS t1
LEFT JOIN TABLO2 AS t2 ON t2.KOD=t1.KOD
GROUP BY t2.KOD;
.rar Tarih Say.rar (Dosya Boyutu: 19,89 KB | İndirme Sayısı: 1)
Cevapla
#4
haklısını
(26/06/2021, 14:36)feraz yazdı: Berduş hocam sizin dosyada tablo2 deki 5.satırdaki 15 i 16 yapınca sonuç yanlış çıkıyor.
haklısınız hocam sonuç hatalı aşağıdaki gibi olabilir
SELECT O1.KOD, O1.Once, S2.Sonra
FROM (SELECT TABLO1.KOD, Sum(TABLO2.SURE) AS Sonra
FROM TABLO2 INNER JOIN TABLO1 ON TABLO2.KOD = TABLO1.KOD
WHERE (((TABLO2.TARIH)>[TABLO1]![TARIH]))
GROUP BY TABLO1.KOD
) AS S2 INNER JOIN (SELECT TABLO1.KOD, Sum(TABLO2.SURE) AS Once
FROM TABLO2 INNER JOIN TABLO1 ON TABLO2.KOD = TABLO1.KOD
WHERE (((TABLO2.TARIH)<[TABLO1]![TARIH]))
GROUP BY TABLO1.KOD
) AS O1 ON S2.KOD = O1.KOD;
Cevapla
#5
feraz hocam aşağıdaki kodu dener misiniz? nerede hata yapıyorum:
cdbl kullandım, # kullandım olmadı benim ofiste mi sıkıntı var acaba
aslında Dsum olacaktı ama şimdilik DCount olsun
Once: DCount("sure";"tablo2";"kod='" & [KOD] & "' and TARIH < " & [TARIH])
Cevapla
#6
(26/06/2021, 16:23)berduş yazdı: feraz hocam aşağıdaki kodu dener misiniz? nerede hata yapıyorum:
cdbl kullandım, # kullandım olmadı benim ofiste mi sıkıntı var acaba
aslında Dsum olacaktı ama şimdilik DCount olsun
Once: DCount("sure";"tablo2";"kod='" & [KOD] & "' and TARIH < " & [TARIH])
Tamam abey müsait olunca denerim,biraz sürer ama.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task