Sorgu İçerisinde Tarihte Çıkartma İşlemi Yapmak

1 2 3 4
17/06/2020, 14:32

itfaiyeci_26

Tüm form sakinlerine iyi günler dilerim yapmaya çalıştığım. 
Bir sorgu oluşturuldu bu sorgunun içerisinde bazı zaman dilimleri var son kısma iki zamanı birbirinden çıkartarak kalan zamanı yazmak istiyorum. Ama bir türlü başaramadın bunun için nasıl bir formül yazmam gerekiyor.

sorgu içerisindeki İlkarac_cikis zamanından çağrı yönlendirici zamanını çıkartmak sonucu ise cikis_zamani olarak yazdırmak ve İlkarac_varis zamanından İlkaraccikis zamanını çıkartmak sonucu ise arac_varis olarak almak istiyorum. saat, dakika,saniye cinsinden 1:05:05 formatında.
Vt ' ekliyorum yardımlarınızı bekliyorum.
17/06/2020, 18:28

berduş

Zaman hassasiyeti saniye seviyerinde mi olacak?
17/06/2020, 18:58

itfaiyeci_26

(17/06/2020, 18:28)berduş yazdı: Zaman hassasiyeti saniye seviyerinde mi olacak?
evet hocam saat dakika ve saniye olacak ben buna daha sonra ortalama alacağım örneğin listelen 10 olaya ortalama 5:15 dakikada çıkılmış (5 dakika 15 saniye ) yada listelenen 10 olaya 9:15 dakikada varılmış (9 dakika 15 saniye gibi)
18/06/2020, 01:18

userx

Sayın itfaiyeci_26
TblVakaIlkArac adlı sorgunuzu alttaki sorguyla değiştirerek ya da alttaki kodla yeni bir sorgu oluşturarak kontrol eder misiniz ? 
SELECT TblVaka.vaka_id, TblVaka.vaka_no, TblVaka.olay_tarihi, TblVaka.vardiya_id, TblVaka.olay_turu_id, TblVaka.olay_cins_id, First(TblGurup.grup_adi) AS İlkgrup_adi, First(TblArac.arac_plaka) AS İlkarac_plaka, TblVaka.cagri_yonlendirici, TblCikisYapanArac.arac_cikis, Nz(IIf(Format([arac_cikis]-[cagri_yonlendirici],"hh")>0 And Format([arac_cikis]-[cagri_yonlendirici],"hh") Is Not Null,Format([arac_cikis]-[cagri_yonlendirici],"h") & " saat","") & " " & IIf(Format([arac_cikis]-[cagri_yonlendirici],"nn")>0 And Format([arac_cikis]-[cagri_yonlendirici],"nn") Is Not Null,Format([arac_cikis]-[cagri_yonlendirici],"n") & " dakika","") & " " & IIf(Format([arac_cikis]-[cagri_yonlendirici],"ss")>0 And Format([arac_cikis]-[cagri_yonlendirici],"ss") Is Not Null,Format([arac_cikis]-[cagri_yonlendirici],"s") & " saniye",""),0) AS ÇağrıYönlendirme_AraçÇıkış_Süresi, TblCikisYapanArac.arac_varis, Nz(IIf(Format([arac_varis]-[arac_cikis],"hh")>0 And Format([arac_varis]-[arac_cikis],"hh") Is Not Null,Format([arac_varis]-[arac_cikis],"h") & " saat","") & " " & IIf(Format([arac_varis]-[arac_cikis],"nn")>0 And Format([arac_varis]-[arac_cikis],"nn") Is Not Null,Format([arac_varis]-[arac_cikis],"n") & " dakika","") & " " & IIf(Format([arac_varis]-[arac_cikis],"ss")>0 And Format([arac_varis]-[arac_cikis],"ss") Is Not Null,Format([arac_varis]-[arac_cikis],"s") & " saniye",""),0) AS AraçÇıkış_AraçVarış_Süresi, TblCikisYapanArac.arac_ayrilis, TblCikisYapanArac.arac_donus, Nz(IIf(Format([arac_donus]-[arac_ayrilis],"hh")>0 And Format([arac_donus]-[arac_ayrilis],"hh") Is Not Null,Format([arac_donus]-[arac_ayrilis],"h") & " saat","") & " " & IIf(Format([arac_donus]-[arac_ayrilis],"nn")>0 And Format([arac_donus]-[arac_ayrilis],"nn") Is Not Null,Format([arac_donus]-[arac_ayrilis],"n") & " dakika","") & " " & IIf(Format([arac_donus]-[arac_ayrilis],"ss")>0 And Format([arac_donus]-[arac_ayrilis],"ss") Is Not Null,Format([arac_donus]-[arac_ayrilis],"s") & " saniye",""),0) AS AraçaDönüş_AraçAyrılış_Süresi
FROM (((TblVaka INNER JOIN TblCikisYapanGurup ON TblVaka.[vaka_id] = TblCikisYapanGurup.[vaka_id]) INNER JOIN TblCikisYapanArac ON TblCikisYapanGurup.[TblCikisYapanGurup_id] = TblCikisYapanArac.[TblCikisYapanGurup_id]) INNER JOIN TblGurup ON TblCikisYapanGurup.gurup_id = TblGurup.gurup_id) INNER JOIN TblArac ON TblCikisYapanArac.plaka_id = TblArac.arac_id
GROUP BY TblVaka.vaka_id, TblVaka.vaka_no, TblVaka.olay_tarihi, TblVaka.vardiya_id, TblVaka.olay_turu_id, TblVaka.olay_cins_id, TblVaka.cagri_yonlendirici, TblCikisYapanArac.arac_cikis, TblCikisYapanArac.arac_varis, TblCikisYapanArac.arac_ayrilis, TblCikisYapanArac.arac_donus
HAVING (((TblCikisYapanArac.arac_cikis) Is Not Null));
18/06/2020, 08:17

itfaiyeci_26

Sayın Userx hocam çok teşekkür ederim evet verdiğiniz sorgu çalıştı. Ancak listedeki tüm araçların sürelerini hesaplıyor hocam benim istediğim her vakaya ilk giden bir aracın süresi bunu nasıl yapabilirim.
 Bir şey sormak istiyorum. ben daha sonra bu zaman verilerinden ortalama alacağım. bir ay içerisinde olaylara ortalama şu kadar saatte çıkış yapılmıştır. Ya da bir ay içerisinde olayalara ortalama şu kadar saatte varılmıştır. Gibi vermiş olduğunuz sorgu sonucundan elde ettiğim süreleri bunun için kullanabilir miyim.
18/06/2020, 12:06

berduş

önce çalışmanıza bir modul ekleyip aşağıdaki fonksiyonu ekleyin
Function Sny2Sure(LngSny As Long) As String
Dim LngSaat, LngDk, LngSaniye, TmpKln As Long
TmpKln = LngSny
LngSaniye = Format(TmpKln Mod 60, "00")

TmpKln = TmpKln \ 60
LngDk = Format(TmpKln Mod 60, "00") & ":"

TmpKln = TmpKln \ 60
LngSaat = Format(TmpKln Mod 60, "00") & ":"

Sny2Sure = LngSaat & LngDk & LngSaniye
End Function
aşağıdaki koda ait bir sorgu oluşturup dener misiniz?
SELECT TblVaka.vaka_id, TblVaka.vaka_no, TblVaka.olay_tarihi, TblVaka.vardiya_id, TblVaka.olay_turu_id, TblVaka.olay_cins_id, TblVaka.cagri_yonlendirici, First(TblGurup.grup_adi) AS İlkgrup_adi, First(TblArac.arac_plaka) AS İlkarac_plaka, First(TblCikisYapanArac.arac_cikis) AS İlkarac_cikis, First(TblCikisYapanArac.arac_varis) AS İlkarac_varis, First(TblCikisYapanArac.arac_ayrilis) AS İlkarac_ayrilis, First(TblCikisYapanArac.arac_donus) AS İlkarac_donus, DateDiff("s",[cagri_yonlendirici],[İlkarac_cikis]) AS CikisSure, DateDiff("s",[İlkarac_cikis],[İlkarac_varis]) AS VarisSure, Sny2Sure([CikisSure]) AS İfade1, Sny2Sure([VarisSure]) AS İfade2
FROM (((TblVaka INNER JOIN TblCikisYapanGurup ON TblVaka.[vaka_id] = TblCikisYapanGurup.[vaka_id]) INNER JOIN TblCikisYapanArac ON TblCikisYapanGurup.[TblCikisYapanGurup_id] = TblCikisYapanArac.[TblCikisYapanGurup_id]) INNER JOIN TblGurup ON TblCikisYapanGurup.gurup_id = TblGurup.gurup_id) INNER JOIN TblArac ON TblCikisYapanArac.plaka_id = TblArac.arac_id
GROUP BY TblVaka.vaka_id, TblVaka.vaka_no, TblVaka.olay_tarihi, TblVaka.vardiya_id, TblVaka.olay_turu_id, TblVaka.olay_cins_id, TblVaka.cagri_yonlendirici;
bu sadece deneme amaçlı ifade1 ve ifade2 sonucu istediğiniz formatta göstermek için sanradan eklenen ve isminde Sure yazan alanalar ise hesaplama işlemlerinde kullanmak için
1 2 3 4