Selamun Aleyklüm arkadaşlar.
delphi 7 ve firebird 2.0 kullanıyorum.
3 katmanlı bir master detail yapısı kullanıyorum.
1-(eğitmen tablosu) eğitmen kodu-primary
2- (hareket tablosu) hareket kodu -primary, eğitmen ve eğitim tip kodu-foreign
3- (Eğitimler tablosu) eğitim kodu-primary, hareket kodu-foreign.
bu yapıya dayanarak herhangi bir eğitmenin belli tarihler arası verdikleri eğitimleri eğitim tip adına göre gruplanmış olarak alıyorum aynı zamanda eğitmenin genel, eğitim tipine göre ortalama puanı ve eğitim puanını gruplanmış olarak gösterebiliyorum.
Bazı eğitmenler için;uzun bir tarih aralığı verdiğimde (01.08.2007-31.10.2007) sonuç alıyorum ve bu sonuçlar içerisinde 01.10.2007-31.10.2007 tarih aralığındaki eğitimleri görebiliyorum. Ama sadece 01.10.2007-31.10.2007 tarih aralığında sorgulama yaptığımda herhangi bir sonuç alamıyorum.
bu sorguyu yaparken parametre kullandım olmadı, kullanmadım olmadı, between kullandım olmadı, >= ve <= kullandım olmadı, karıştırdım olmadı allem ettim olmadı, kullem ettim olmadı. Son çare size danışmak. Bana fikir veriniz ALLah rızası için ne olur.
Allah yar ve yardımcınız olsun.
iki tarih arası sorguda problemlerim var.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
iki tarih arası sorguda problemlerim var.
Hayat yalanlarla dolu bir aşktır.
Gerçek aşka erişince o da biter.
Gerçek aşka erişince o da biter.
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
uzun aralıkta gördüğüm kayıtları daha dar bir aralığa indirgediğimde alamıyorum. Kod istemişsiniz kodu gönderiyorum. Yeni taşındığım yere telekom grevi sebebi ile internet alamadım bu sebeple geç kalıyorum kusuruma bakmayın. Allah'a emanet olun.
Kod: Tümünü seç
IBDTEgitmenim.Close;
IBDTEgitmenim.SelectSQL.Clear;
IBDTEgitmenim.SelectSQL.Text := 'Select * From Egitmen_Rapor where 1=1';
IBDTMaster.Close;
IBDTMaster.SelectSQL.Clear;
IBDTMaster.SelectSQL.Text := 'Select a. ADI_SOYADI, a. EGITMEN_KOD, ' +
'(Select AVG(b.EGITMEN_PUANI) From EGITIM b where b.EGITMEN=a.EGITMEN_KOD) as ortalama From EGITMEN a';
if RzRadioButton1.Checked = True then
begin
IBDTMaster.SelectSQL.Add('where a.EGITMEN_KOD=' + QuotedStr(DM.IBDTEgitmenEGITMEN_KOD.AsString));
IBDTEgitmenim.SelectSQL.Add(' and EGITMEN=' + QuotedStr(DM.IBDTEgitmenEGITMEN_KOD.AsString));
end;
IBDTDetail.Close;
IBDTDetail.SelectSQL.Clear;
IBDTDetail.SelectSQL.Text := 'Select a.EGITIM_AD, a.EGITIM_KOD, a.KAYITNO, a.EGITMEN, ' +
'(Select AVG(b.EGITMEN_PUANI) From EGITIM b where b.HAREKETNO=a.KAYITNO) as Ortalama ' +
'From EGITIM_HAREKET a where a.EGITMEN=:EGITMEN_KOD ';
if RzRadioButton3.Checked = True then
begin
IBDTDetail.SelectSQL.Add('and a.EGITIM_KOD=' + QuotedStr(DM.IBDTEgitimlerEGITIMLER_KOD.AsString));
IBDTEgitmenim.SelectSQL.Add(' and EGITIM_TIP=' + QuotedStr(DM.IBDTEgitimlerEGITIMLER_KOD.AsString))
end else IBDTDetail.SelectSQL.Add('and a.EGITIM_KOD>=' + QuotedStr('0'));
IBDTSDetail.Close;
IBDTSDetail.SelectSQL.Clear;
IBDTSDetail.SelectSQL.Text := 'Select * From EGITMEN_RAPOR where 1=1 ';
if TarihSor.Checked = True then
begin
IBDTSDetail.SelectSQL.Add('and (BASLANGIC_TARIHI between :bastarih and :sontarih)');
// between :bastarih and :sontarih)');
IBDTEgitmenim.SelectSQL.Add('and (BASLANGIC_TARIHI between :bastarih and :sontarih)');
end;
IBDTEgitmenim.SelectSQL.Add(' Order By ADI_SOYADI');
IBDTMaster.SelectSQL.Add(' ORDER BY a.ADI_SOYADI');
IBDTDetail.SelectSQL.Add(' ORDER BY a.EGITIM_AD');
IBDTSDetail.SelectSQL.Add('and HAREKETNO=:KAYITNO ');
IBDTSDetail.SelectSQL.Add('Order By BASLANGIC_TARIHI');
if TarihSor.Checked then
begin
IBDTSDetail.ParamByName('bastarih').AsDateTime := Tarih1.Date;
IBDTSDetail.ParamByName('sontarih').AsDateTime := Tarih2.Date;
IBDTEgitmenim.ParamByName('bastarih').AsDateTime := Tarih1.Date;
IBDTEgitmenim.ParamByName('sontarih').AsDateTime := Tarih2.Date;
end;
IBDTEgitmenim.Open;
IBDTMaster.Open;
IBDTDetail.Open;
IBDTSDetail.Prepare;
IBDTSDetail.Open;
Hayat yalanlarla dolu bir aşktır.
Gerçek aşka erişince o da biter.
Gerçek aşka erişince o da biter.