Skip to main content

AccessTr.neT


Bu ay Sigortalanacak Araçları Listeleme

Yunus Bozkurt
Yunus Bozkurt
10
3569

Bu ay Sigortalanacak Araçları Listeleme

#7
"…o araca ait daha önceki kayıtlar görünmüyor.dolayısıyla,…" tamamen yanlış yazmışım özür dilerim.



Konu şu aslında kullanıcı yeni bir sigorta girişi yaparken başlangıç tarihi tutarı ve sigorta şirketi bilgilerini giriyor. Trafik sigortaları zaten 365 günde dolduğu için evet hayır alanı ile yapmak gereksiz ve mantıksız geliyor bana. kullanıcı form veya  raporu açtığında bu ay sigortalanacak araçların listesini görüyor. (ayın değişik günlerinde sigortalanacak araçlar var) bu listeden herhangi bir araç için sigorta bilgisi girdiğinde o araç aynı form veya raporda bir daha görünmesin istedim.



Alıntı:Son olarak,



Kod:


Kod:
(select Max([Kimlik]) from SIGORTA)


Bu kod ifadesini hangi amaçla ve gerekçe ile kullanmayı istediğinizi anlayamadım.kaldı ki,buna da gereksiniminiz de yok zaten.


bunu kullanmamın sebebi sigorta tablosundaki araçların en son eklenen kaydını bulmak ve o kayıda ait sigorta bitiş tarihi bu ayın içinde ise o kaydı göstermek. Araç sayısı tek olunca sorun yok tam istediğim gibi çalışıyor. araç sayısı birden fazla ise sadece sigorta tablosundaki en son eklenen kaydı buluyor. bunun bir formülü vardı ama hatırlamıyorum ve bulamadım


istediğim şu; sigorta tablosunda her araç için eklenen en son kaydı listelemek.
 Resimle daha daha iyi anlatacağım sanırım


[Resim: n5Vq91.png]

bu sorguyu hazırlayabilir miyiz. sadece en alttaki üç kayıt görünsün sorguda.
  • En tehlikeli kelime ama’dır. Önceden söylenen her söylemi veya kelimeyi öldürür! Mesela, seni seviyorum ama gibi…
Cevapla
#8
(01/12/2014, 19:59)Yunus Bozkurt yazdı: "…o araca ait daha önceki kayıtlar görünmüyor.dolayısıyla,…" tamamen yanlış yazmışım özür dilerim.



Konu şu aslında kullanıcı yeni bir sigorta girişi yaparken başlangıç tarihi tutarı ve sigorta şirketi bilgilerini giriyor. Trafik sigortaları zaten 365 günde dolduğu için evet hayır alanı ile yapmak gereksiz ve mantıksız geliyor bana. kullanıcı form veya  raporu açtığında bu ay sigortalanacak araçların listesini görüyor. (ayın değişik günlerinde sigortalanacak araçlar var) bu listeden herhangi bir araç için sigorta bilgisi girdiğinde o araç aynı form veya raporda bir daha görünmesin istedim.




Alıntı:Son olarak,



Kod:



Kod:
(select Max([Kimlik]) from SIGORTA)


Bu kod ifadesini hangi amaçla ve gerekçe ile kullanmayı istediğinizi anlayamadım.kaldı ki,buna da gereksiniminiz de yok zaten.


bunu kullanmamın sebebi sigorta tablosundaki araçların en son eklenen kaydını bulmak ve o kayıda ait sigorta bitiş tarihi bu ayın içinde ise o kaydı göstermek. Araç sayısı tek olunca sorun yok tam istediğim gibi çalışıyor. araç sayısı birden fazla ise sadece sigorta tablosundaki en son eklenen kaydı buluyor. bunun bir formülü vardı ama hatırlamıyorum ve bulamadım


istediğim şu; sigorta tablosunda her araç için eklenen en son kaydı listelemek.
 Resimle daha daha iyi anlatacağım sanırım


[Resim: n5Vq91.png]

bu sorguyu hazırlayabilir miyiz. sadece en alttaki üç kayıt görünsün sorguda.



Yeni bir sorgu oluşturup Sql koduna aşağıdaki kodları ekleyiniz.

SELECT DISTINCT tbl_sigorta.Kimlik, Tbl_SonKayit.AracID, tbl_sigorta.bastar, tbl_sigorta.bitTar, tbl_sigorta.ucret

FROM (SELECT DISTINCT tbl_Araclar.plaka, tbl_Araclar.Kimlik AS AracID, Max(tbl_sigorta.Kimlik) AS EnÇokKimlik
FROM tbl_sigorta INNER JOIN tbl_Araclar ON tbl_sigorta.aracbilgisi = tbl_Araclar.plaka
GROUP BY tbl_Araclar.plaka, tbl_Araclar.Kimlik
)  AS Tbl_SonKayit INNER JOIN tbl_sigorta ON Tbl_SonKayit.EnÇokKimlik = tbl_sigorta.Kimlik
GROUP BY tbl_sigorta.Kimlik, Tbl_SonKayit.AracID, tbl_sigorta.bastar, tbl_sigorta.bitTar, tbl_sigorta.ucret;

Cevapla
#9
(01/12/2014, 20:52)ozanakkaya yazdı: Yeni bir sorgu oluşturup Sql koduna aşağıdaki kodları ekleyiniz.

SELECT DISTINCT tbl_sigorta.Kimlik, Tbl_SonKayit.AracID, tbl_sigorta.bastar, tbl_sigorta.bitTar, tbl_sigorta.ucret

FROM (SELECT DISTINCT tbl_Araclar.plaka, tbl_Araclar.Kimlik AS AracID, Max(tbl_sigorta.Kimlik) AS EnÇokKimlik
FROM tbl_sigorta INNER JOIN tbl_Araclar ON tbl_sigorta.aracbilgisi = tbl_Araclar.plaka
GROUP BY tbl_Araclar.plaka, tbl_Araclar.Kimlik
)  AS Tbl_SonKayit INNER JOIN tbl_sigorta ON Tbl_SonKayit.EnÇokKimlik = tbl_sigorta.Kimlik
GROUP BY tbl_sigorta.Kimlik, Tbl_SonKayit.AracID, tbl_sigorta.bastar, tbl_sigorta.bitTar, tbl_sigorta.ucret;


teşekkürler ozanakkaya sorun çözüldü  +rep


ancak siz cevap yazmadan şunu buldum internetten ikiside aynı işi görüyor sanırım




SELECT s.plaka, sc.sontar
FROM ARACLAR AS s LEFT JOIN SIGORTA AS sc ON s.Kimlik = sc.ARACBILGISI
WHERE (((Exists (SELECT 1 FROM SIGORTA as  s2  WHERE s.Kimlik = s2.ARACBILGISI    HAVING MAX(s2.Kimlik) = sc.Kimlik ))<>False));

  • En tehlikeli kelime ama’dır. Önceden söylenen her söylemi veya kelimeyi öldürür! Mesela, seni seviyorum ama gibi…
Son Düzenleme: 01/12/2014, 21:30, Düzenleyen: Yunus Bozkurt.
Cevapla
#10
her iki kodda aynı işlemi gerçekleştirir. Ben tbl_sigorta tablosundaki en büyük kimlik değerine göre sorgu oluşturdum, eklediğiniz sorguda tüm kimlikler sıralanmış, top 1 ile en büyük ilk değer alınmış. 
İkisi de aynı hesap.

Sizin 

SELECT sc.Kimlik, s.Kimlik, sc.bastar, sc.bittar, sc.ucret

FROM tbl_Araclar AS s LEFT JOIN tbl_sigorta AS sc ON s.plaka = sc.aracbilgisi
WHERE (((Exists (SELECT 1 FROM tbl_sigorta as  s2  WHERE s.plaka = s2.aracbilgisi HAVING MAX(s2.kimlik) = sc.kimlik ))<>False));


şeklinde kullanmanız gerekiyor.

Ayrıca iki tablo arasında "plaka" ile "aracbilgisi" arasında eklenen ilişkilendirme bence yanlış.

İlişkilendirmenin tbl_araclar tablosundaki Kimlik (bunun karışmaması için AracId olaması gerekli) alanı ile tbl_sigorta tablosundaki aracbilgisi yerine yazılacak aracid alanı arasında yapılması gerekli.
Cevapla
#11
Teşekkür ederim. Orjinal tablolarda tbl_ARACLAR.Kimlik--> tbl_SIGORTA.AracID ilşikisi var. 
  • En tehlikeli kelime ama’dır. Önceden söylenen her söylemi veya kelimeyi öldürür! Mesela, seni seviyorum ama gibi…
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task